十进制转换为二进制,八进制和十六进制(因为是一个类型,所以就放在一起进行归纳,也可以方便大家记忆)
1.十进制转换为二进制
eg:十进制数35.6875转换为二进制
整数部分:
35/2=17余1
17/2=8余1
8/2=4余0
4/2=2余0
2/2=1余0
1/2=0余1
小数部分:0.6875*2=1.3750整数为1
1.3750*2=0.750整数为0
0.750*2=1.500整数为1
1.500*2=1.000整数为1
所以转换为对应的二进制数就是100011.1011
总结:整数部分采用“除二取余,直到商为0”根据先获得的余数为二进制的低位,后获得的为高位,小数部分采用“乘二取整法(直到小数位0,或精确到某个精度为止)”,第一个乘积的整数为结果的最高位,最后一个为最低位。
那对于十进制转换为八进制与十六进制则是除以或乘以相应的数。
二进制转换为十进制
eg:11.101转换为二进制数
11.101=1*2^1+1*2^0=1*2^-1+0*2^-2+1*2^-3=21.625
二进制转换为八进制
从小数点开始分别向左和向右把整数及小数部分按每三位分为一组,若整数最高组不足三位,在其左边加0补足三位,小数最低组不足三位,在其右边加0补足三位,然后用每组位二进制数对应的八进制数取代该组的三位二进制数,则可获得该二进制数对应的八进制数。
eg:11010.011转换为八进制
011——3 010——2 011——3
所以对应的八进制数是32.3。
八进制转换为二进制数
把八进制数的每一位均用对应的3位二进制数去取代,即可得到八进制数对应的二进制数。
二进制数转化为十六进制数
从小数点开始分别向左和向右把整数及小数部分按每四位分一组,若整数最高组不足四位则在其左边补0,小数最低组不足四位在其最右边补0,然后用与每组四位二进制数所对应的十六进制数去取代每组的四位数,即可得到该二进制数对应的十六进制数。
eg:11010.01转换为十六进制数
0100——4 1010——A 0010——1
11010.01所对应的十六进制数是1A.4
十六进制转换位二进制
把十六进制的每一位均用对应的4位二进制数取代,即可得到对应的二进制数。