一、二进制、四进制、八进制、十六进制与十进制之间的互相转换
(1)十进制转换为二进制分为整数部分和小数部分
1、整数部分
除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,重复这个步骤,直到商为0为止,最后读数的时候从最后一个余数开始读起,一直到最前面的一个余数:
例:将十进制的168转换成二进制,得出结果(10101000)
分析:
第一步,将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为止,如果永远不能为0,就同十进制数的四舍五入一样,按照要求保留多少位小数,根据后面一位是0或者1进行取舍,如果是0舍掉,如果是1进入一位,0舍1入,读数要从前面的整数读到后面的整数:
例1:将0.125转换成二进制,得出结果(0.001)
分析:
第一步,将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.0111)
分析:
第一步,将0.45乘以2,得0.9,则整数部分为0,小数部分为0.9。
第二步, 将小数部分0.9乘以2,得1.8,则整数部分为1,小数部分为0.8。
第三步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6。
第四步, 将小数部分0.6乘以2,得1.2,则整数部分为1,小数部分为0.2。
第五步, 将小数部分0.2乘以2,得0.4,则整数部分为0,小数部分为0.4。
第六步, 将小数部分0.4乘以2,得0.8,则整数部分为0,小数部分为0.8。
第七步, 读数,从第一位读起,读到最后一位,即为0.011100,保留小数点后四位结果是0.0111。
当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。那么,我们可以得出结果将0.45转换为二进制约等于0.0111
(2)二进制转换为十进制分为整数部分和小数部分
1、整数部分
按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数,二进制整数部分从整数数字个数-1开始
例1:将1011转换成十进制(从4-1次幂开始)
1*23+0*22+1*21+1*20 =8+0+2+0 =10
例2:将101010转换成十进制(从6-1次幂开始)
1*25+0*24+1*23+0*22+1*21+1*20 =32+0+8+0+2+0 =42
2、小数部分
按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数,在小数部分从-1开始
例1:将0.101转换成十进制(从-1次幂开始)
1*2-1+0*2-2+1*2-3 = 1*1/21+0*1/22+1*1/23 =1/2+0+1/8=0.625
例2:将0.1011转换成十进制(从-1次幂开始)
1*2-1+0*2-2+1*2-3 +1*2-4= 1*1/21+0*22+1*1/23+1*1/24 =1/2+1/8+1/16=11/16=0.6875
(3)十进制转换四、八、十六进制同理
1、整数部分
①、十进制转换四进制:除4取余法,即每次将整数部分除以4
例:将十进制1011转换成四进制数字:1011/4=252...3,252/4=63...0,63/4=15...3,15/4=3...3,3/4=0...3,所以结果是33303
②、十进制转换八进制:除8取余法,即每次将整数部分除以8
例:将十进制1011转换成八进制数字:1011/8=126...3,126/8=15...6,15/8=1...7,1/8=0...1,所以结果是1763
③、十进制转换十六进制:除16取余法,即每次将整数部分除以16
例:将十进制1011转换成十六进制数字:1011/16=63...3,63/16=3...15,3/16=3...3,十六进制中超过10的数字用字体代替,10=A,11=B,12=C,13=D,14=E,15=F,所以结果是3F3
2、小数部分
①、十进制转换四进制:每次将小数部分乘以4,取整数部分,将剩余小数继续乘以4,直到乘到结果为整数为止
例:将十进制0.111转换成四进制数字:0.111*4=0.444,0.444*4=1.776,0.776*4=3.104,0.104*4=0.416。。。。。。所以结果是0.0130122213323321312302023101
②、十进制转换八进制:每次将小数部分乘以8,取整数部分,将剩余小数继续乘以8,直到乘到结果为整数为止
例:将十进制0.7356转换成八进制数字:0.7356*8=5.8848,0.8848*8=7.0784,0.0784*8=0.6272,0.6272*8=5.0176。。。。。。所以结果是0.570501100557000646
③、十进制转换十六进制:每次将小数部分乘以16,取整数部分,将剩余小数继续乘以16,直到乘到结果为整数为止
例:将十进制0.111转换成十六进制数字:0.111*16=1.776,0.776*16=12.416,0.416*16=6.656,0.656*16=10.496。。。。。。所以结果是0.1c6a7ef9db22d1
(4)四、八、十六进制转换十进制同理
标签:转换,进制,16,整数,乘以,部分,十进制,小数 From: https://www.cnblogs.com/luym/p/17473356.html