十进制数29转换成二进制是多少?

如题所述

转化标准二进制方法如下,直接用例子来回答:

实例分析:十进制数 29;

用BCD码表示:十位上的十进制数为 2 == BCD码表示为 0010;个位上的十进制数9 === BCD码表示为 1001;所以总的来说 十进制数 29 用BCD码表示为:0010 1001

转换过程:把BCD码 0010(十进制数为十位上的 2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。

因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数),所以直接用前面的十位上的数加上它就可以了。

简单点分析:0010(十位上的2 BCD码表示)× 10 + 1001(个位上的9 BCD码表示)= 29的二进制数

C代码表示:#define BCD_TO_BIN(val)   ((((val) >> 4) * 10) +  ((val)&15))

BCD码是用4位二进制数(各个位的权重分别为:8421,所以叫8421码)来表示一位十进制数。这里的一位十进制数要特别说明下,一位十进制数只能是 0~9之间的一个数值。比如:6 就是表示一位十进制数6;66则是表示两位十进制数;666则是表示三位十进制数。

扩展资料:

BCD码的特点:

1、8421编码直观,好理解。

2、5421码和2421码中大于5的数字都是高位为1,5以下的高位为0。

3、余3码是8421码加上3,有上溢出和下溢出的空间。

4、格雷码相邻的2个数只有一位不同。

BCD码的运算规则:

BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。

修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。

这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。

参考资料:百度百科——BCD码

温馨提示:答案为网友推荐,仅供参考