内容部分摘抄于朱有朋老师
BCD码本质是对数字的一种编码,用来解决这种问题:由56得到0x56(或者反过来)。也就是说我们希望十进制的56被编码成56(这里56不是十进制的56,而是两个数字5和6)。
BCD的作用可以将十进制数拆成组成这个十进制的各个数字的编码,变成编码后就没有位数的限制了。譬如由一个很长的数123456789123456789,如果这个数当数字肯定超出int范围,计算机无法处理。想要让计算机处理这个数,计算机首先得能表达这个数,表达得方式是将这个数转成对应得BCD(123456789123456789 类似于字符串)
如何表示BCD编码?BCD码可以在计算机用十六进制形式表示,也就是十进制得56转成BCD后是56,在计算机中用0x56来表达。
简洁的地说BCD就是用16进制表示10进制的数 如99(1001 1001)
所以在编程中想让其表示10进制数, (x/10)*16 +(x)%100
如x是99 那么得到的结果是153,153的二进制是1001 1001(16进制表示出来的结果就是99),
当然如果是111呢,其16进制是6F,无法用16进制形式表示111,因为一个字节(8位)只能表示2个数。解决这个办法就是增加表示位数,第一步得到百位 x /100 ,(x/10)*16 +(x)%100,第二步得到个位和十位 x%100,(x/10)*16 +(x)%100。那么得到就是二进制(0001 0001 0001)。
百位 十位 个位