以二进制为中心进行数制转换
1 二进制(bit)转换为十进制(decimal)
任何进位数制表示的数都可以写成按位权展开的多项式之和。利用位权表示法,整数部分第i位的位权为N(i-1),而小数部分的位权为N-j。
(10110.01)2 = 1×2^4+0×2^3+1×2^2+1×2^1+0×2^0+0×2-1+1×2-2 =
16+0+4+2+0+0+0.25=(22.25)10
其他进制转换为十进制也可以使用这个方法。
2 二进制转换为八进制(octal)
一位八进制数可用三个二进制数来表示。因此二进制数转换成八进制数,只要以小数点为界,向左向右每三位二进制数用一个八进制数来代替即可,不足三位的用0补足。
把一个八进制数转换成二进制数,只要将一位拆分成三位即可。
例:( 734.52 )8=( 111011100.10101 )2
( 7 3 4 . 5 2 )8
(111 101 100 . 101 010 )2
3 二进制转换为十六进制(hexadecimal)
一位十六进制数可用4个二进制数来表示。因此二进制数转换成十六进制数,只要以小数点为界,向左向右每4位二进制数用一个十六进制数来代替即可,不足4位的用0补足。
把一个十六进制数转换成二进制数,只要将一位拆分成四位即可。
例:(7D3.A2 ) 16 =( 011111010011.10100010 )2
( 7 D 3 . A 2 ) 16
( 0111 1101 0011 . 1010 0010 )2
4 十进制转换为二进制
十进制整数转换为二进制整数采用”除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
十进制小数转换成二进制小数采用”乘2取整,顺序排列”法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
5 八进制转换为二进制
一位八进制数可用三个二进制数来表示。因此二进制数转换成八进制数,只要以小数点为界,向左向右每三位二进制数用一个八进制数来代替即可,不足三位的用0补足。
例:(1011100101.0101)2=(1345.24)8
利用以下方法和技巧:
( 001 011 100 101 . 010 100 )2
( 1 3 4 5 . 2 4 )8
6 十六进制转换为二进制
一位十六进制数可用4个二进制数来表示。因此二进制数转换成十六进制数,只要以小数点为界,向左向右每4位二进制数用一个十六进制数来代替即可,不足4位的用0补足。
例:( 1011100101.0101 )2=( 2E5.5 )16
利用以下方法和技巧:
( 0010 1110 0101 . 0101 )2
( 2 E 5 5 )16编程
