常用数制之间的转换
(2010-12-29 15:33:21)
标签:
十进制二进制八进制十六进制it |
分类: .IT.相关.知识 |
不同数进制之间进行转换应遵循转换原则。转换原则是:两个有理数如果相等,则有理数的整数部分和分数部分一定分别相等。也就是说,若转换前两数相等,转换后仍必须相等,数制的转换要遵循一定的规律。
1.二、八、十六进制数转换为十进制数
(1)二进制数转换成十进制数
将二进制数转换成十进制数,只要将二进制数用计数制通用形式表示出来,计算出结果,便得到相应的十进制数。
例:(1101100.111)2=1×26+1×25+1×23+1×22+1×2-1+1×2-2+1×2-3
=64+32+8+4+0.5+0.25+0.125
=(108.875)10
(2)八进制数转换为十进制数
八进制数→十进制数:以8为基数按权展开并相加。
例:把(652.34)8转换成十进制。
解:(652.34)8=6×82+5×81+2×80+3×8-1+4×8-2
=384+40+2+0.375+0.0625
=(426.4375)10
(3)十六进制数转换为十进制数
十六进制数→十进制数:以16为基数按权展开并相加。
例:将(19BC.8)16转换成十进制数。
解:(19BC.8)16=1×163+9×162+B×161+C×160+8×16-1
=4096+2304+176+12+0.5
=(6588.5)10
2.十进制转换为二进制数
(1)整数部分的转换
整数部分的转换采用的是除2取余法。其转换原则是:将该十进制数除以2,得到一个商和余数(K0),再将商除以2,又得到一个新商和余数(K1),如此反复,得到的商是0时得到余数(Kn-1),然后将所得到的各位余数,以最后余数为最高位,最初余数为最低位依次排列,即Kn-1Kn-2…K1K0,这就是该十进制数对应的二进制数。这种方法又称为“倒序法”。
例:将(126)10转换成二进制数。
结果为:(126)10=(1111110)2
(2)小数部分的转换
小数部分的转换采用乘2取整法。其转换原则是:将十进制数的小数乘以2,取乘积中的整数部分作为相应二进制数小数点后最高位K-1,反复乘2,逐次得到K-2、K-3、…、K-m,直到乘积的小数部分为0或1的位数达到精确度要求为止。然后把每次乘积的整数部分由上而下依次排列起来(K-1K-2…K-m),即是所求的二进制数。这种方法又称为“顺序法”。
例:将十进制数(0.534)10转换成相应的二进制数。
结果为:(0.534)10=(0.10001)2
例:将(50.25)10转换成二进制数。
分析:对于这种既有整数又有小数部分的十进制数,可将其整数和小数分别转换成二进制数,然后再把两者连接起来即可。
因为(50)10=(110010)2,(0.25)10=(0.01)2
所以(50.25)10=(110010.01)2
3.八进制与二进制数之间的转换
(1)八进制转换为二进制数
八进制数转换成二进制数所使用的转换原则是“一位拆三位”,即把一位八进制数对应于三位二进制数,然后按顺序连接即可。
例:将(64.54)8转换为二进制数。
6
↓
110
结果为:(64.54)8=(110100.101100)2
(2)二进制数转换成八进制数
二进制数转换成八进制数可概括为“三位并一位”,即从小数点开始向左右两边以每三位为一组,不足三位时补0,然后每组改成等值的一位八进制数即可。
例:将(110111.11011)2转换成八进制数。
110
↓
6
结果为:(110111.11011)2=(67.66)8
4.二进制数与十六进制数的相互转换
(1)二进制数转换成十六进制数
二进制数转换成十六进制数的转换原则是“四位并一位”,即以小数点为界,整数部分从右向左每4位为一组,若最后一组不足4位,则在最高位前面添0补足4位,然后从左边第一组起,将每组中的二进制数按权数相加得到对应的十六进制数,并依次写出即可;小数部分从左向右每4位为一组,最后一组不足4位时,尾部用0补足4位,然后按顺序写出每组二进制数对应的十六进制数。
例:将(1111101100.0001101)2转换成十六进制数。
0011
↓
3
结果为:(1111101100.0001101)2=(3EC.1A)16
(2)十六进制数转换成二进制数
十六进制数转换成二进制数的转换原则是“一位拆四位”,即把1位十六进制数写成对应的4位二进制数,然后按顺序连接即可。
例:将(C41.BA7)16转换为二进制数。
C
↓
1100
结果为:(C41.BA7)16=(110001000001.101110100111)2
在程序设计中,为了区分不同进制,常在数字后加一英文字母作为后缀以示区别。
十进制数,在数字后面加字母D或不加字母也可以,如6659D或6659。
二进制数,在数字后面加字母B,如1101101B。
八进制数,在数字后面加字母O,如1275O。
十六进制数,在数字后面加字母H,如CFE7BH。