du blog
Hello, welcome to my blog
二进制与十进制的转换
created: Mar 6 21updated: Mar 6 21

十进制整数转换为二进制整数

十进制整数转换为二进制整数采用"除2取余,逆序排列法"

具体做法为:

· 用 2 整除十进制整数,得到一个商和余数

· 再用 2 整除商, 又会得到一个商和余数,如此进行,直到商小于 1 为止,

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

比如 我们想把 125 转换为二进制,做法如下

125 / 2 商 62 余 1

62 / 2 商 31 余 0

31 / 2 商 15 余 1

15 / 2 商 7 余 1

7 / 2 商 3 余 1

3 / 2 商 1 余 1

1 / 2 商 0 余 1

得: 1111101

十进制小数转换为二进制小数

十进制小数转换为二进制小数采用"乘以2取整,顺序排列法"

具体做法为:

· 用 2 乘以十进制小数,可得积

· 将积的整数部分取出来,再使用2乘以余下的小数部分,又得到一个积

· 再将积的整数部分取出来,如此进行,直到小数部分为零,

比如:十进制 0.625 转换为二进制小数

0.625 * 2 = 1.25 整数部分 1

0.25 * 2 = 0.5 整数部分 0

0.5 * 2 = 1.0 整数部分 1

得:0.101

二进制转换为十进制

整数二进制用数值乘以 2 的幂次 依次相加,小数二进制用数值乘以 2 的 负次幂 然后依次相加

整数:

比如将 110 转换为 二进制:

个位 0 与 20 相乘得:0

十位 1 与 21 相乘得:2

百位 1 与 22 相乘得:4

结果相加为6,所以二进制110 转换为十进制为6

小数:

比如将 0.110 转换为 十进制:

小数第一位 1 与 2-1 相乘得:0.5

小数第二位 1 与 2-2 相乘得:0.25

小数第三位 0 与 2-3 相乘得:0

结果相加为 0.75, 所以二进制 0.110 转换为十进制 为 0.75

注意:这里没有考虑负数的情况

参考链接:

http://www.360doc.com/content/11/0308/14/5327079_99222581.shtml

https://mp.weixin.qq.com/s?__biz=Mzg3MjA4MTExMw==&mid=2247493568&idx=1&sn=8c445ca35300fde5a4f53685cc564dac&chksm=cef61476f9819d603a9f15690267885e8b96c90747c71f9c8408b4bdfe0d1c515ee0fc3b8847&scene=21#wechat_redirect