十进制的小数怎么转换成二进制

十进制的小数怎么转换成二进制,第1张

可以采用乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。

如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数。

下面举例:

例1:将0125换算为二进制,结果为:将0125换算为二进制(0001)2 。

分析:第一步,将0125乘以2,得025,则整数部分为0,小数部分为025。

第二步, 将小数部分025乘以2,得05,则整数部分为0,小数部分为05。

第三步, 将小数部分05乘以2,得10,则整数部分为1,小数部分为00。

第四步,读数,从第一位读起,读到最后一位,即为0001。

扩展资料

十进制整数转换为二进制整数计算的方法:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止。

然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

如:255=(11111111)B

255/2=127=====余1

127/2=63======余1

63/2=31=======余1

31/2=15=======余1

15/2=7========余1

7/2=3=========余1

3/2=1=========余1

1/2=0=========余1

789=1100010101(B)

789/2=394 余1 第10位

394/2=197 余0 第9位

197/2=98 余1 第8位

98/2=49 余0 第7位

49/2=24 余1 第6位

24/2=12 余0 第5位

12/2=6 余0 第4位

6/2=3 余0 第3位

3/2=1 余1 第2位

1/2=0 余1 第1位

原理:

众所周知,二进制的基数为2,十进制化二进制时所除的2就是它的基数。谈到它的原理,就不得不说说关于位权的概念。某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ” 。

位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。十进制数的百位、十位、个位、十分位的权分别是10的2次方、10的1次方、10的0次方,10的-1次方。二进制数就是2的n次幂。

按权展开求和正是非十进制化十进制的方法。

下面我们开讲原理,举个十进制整数转换为二进制整数的例子,假设十进制整数A化得的二进制数为edcba 的形式,那么用上面的方法按权展开, 得:

A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4)

假设该数未转化为二进制,除以基数2得:

A/2=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2

注意:a除不开二,余下了!其他的绝对能除开,因为他们都包含2,而a乘的是1,他本身绝对不包含因数2,只能余下。

商得:b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基数2余下了b,以此类推。

当这个数不能再被2除时,先余掉的a位数在原数低,而后来的余数数位高,所以要把所有的余数反过来写。正好是edcba。

参考资料:

百度百科-  十进制转二进制

我只说说方法吧,先mov R0,a;把原数暂存于R0中 and a,#0fh; mov R1,a;低四位保存至R1 mov a,R0; and a,#0f0h; swap a;交换高四位与低四位 此时再把a中的数乘以10再加上R1中保存的数就可以了。只说了大致思路,具体的自己写吧。

八进制转化为二进制:
1位八进制占3位二进制,于是,7531Q=111 101 011 001B
转化为二进制:
1位十六进制占4位二进制,于是,FA8421H=1111 1010 1000 0100 0010 0001B


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13285415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-08
下一篇 2023-07-08

发表评论

登录后才能评论

评论列表(0条)

保存