十进制整数转换为二进制整数采用"除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