二进制、八进制、十进制、十六进制之间转换
一、 十进制与二进制之间的转换
(1) 十进制转换为二进制,分为整数部分和小数部分
① 整数部分
方法:除 2 取余法,即每次将整数部分除以 2,余数为该位权上的数,而商继续除以 2,余数
又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后
一个余数读起,一直到最前面的一个余数。下面举例:
例:将十进制的 168 转换为二进制
得出结果 将十进制的 168 转换为二进制, (10101000) 2
分析 : 第一步,将 168 除以 2, 商 84, 余数为 0。
第二步,将商 84 除以 2,商 42 余数为 0。
第三步,将商 42 除以 2,商 21 余数为 0。
第四步,将商 21 除以 2,商 10 余数为 1。
第五步,将商 10 除以 2,商 5 余数为 0。
第六步,将商 5 除以 2,商 2 余数为 1。
第七步,将商 2 除以 2,商 1 余数为 0。
第八步,将商 1 除以 2,商 0 余数为 1。
第九步,读数,因为最后一位是经过多次除以 2 才得到的,因此它是最高位,读数字从最后
的余数向前读,即 10101000
(2) 小数部分
方法:乘 2 取整法,即将小数部分乘以 2,然后取整数部分,剩下的小数部分继续乘以 2,然
后取整数部分,剩下的小数部分又乘以 2,一直取到小数部分
为零为止。 如果永远不能为零, 就同十进制数的四舍五入一样, 按照要求保留多少位小数时,
就根据后面一位是 0 还是 1,取舍,如果是零,舍掉,如果是 1,向入一位。换句话说就是 0
舍 1 入。读数要从前面的整数读到后面的整数,下面举例:
例 1:将 0.125 换算为二进制
得出结果:将 0.125 换算为二进制( 0.001 )2
分析:第一步,将 0.125 乘以 2,得 0.25, 则整数部分为 0, 小数部分为 0.25;
第二步 , 将小数部分 0.25 乘以 2, 得 0.5, 则整数部分为 0, 小数部分为 0.5;
第三步 , 将小数部分 0.5 乘以 2, 得 1.0, 则整数部分为 1, 小数部分为 0.0;
第四步 , 读数 , 从第一位读起 , 读到最后一位 , 即为 0.001 。
例 2, 将 0.45 转换为二进制(保留到小数点第四位)
大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是 0.4 ,那么小数部分继续乘
以 2,得 0.8 ,0.8 又乘以 2 的,到 1.6 这样一直乘下去,最后不可能得到小数部分为零,因
此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有 0 和 1 两个,于是就
出现 0 舍 1 入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,