您的位置: 首页 > 常识 >

8进制转2进制算法举例(信息编码及数制转换)

100次浏览     发布时间:2024-09-16 09:34:19    

十进制是人们习惯使用的进制,而在计算机中存储的数是采用二进制,但为了表示与记忆方便,还引入了八进制和十六进制。十进制的特点是有10个数码:0~9,进位关系是"逢十进一"。而在计算机中数的表示是采用二进制。

二进制

逢二进一,所有的数都用两个符号0或1表示。二进制的每一位只能表示0或1。例如十进制数1,2,3用二进制表示分别为:(1)10 = (001)2 ,(2)10 = (010)2 ,(3)10 = (011)2 。二进制的缺点是表示一个数需要的位数多,书写数据和指令不方便。

八进制

逢八进一,值大小从0(000)~7(111),为方便起见,将二进制数从低向高每三位组成一组。例如:有一个二进制(100100001100)2,若每三位一组,即:(100,100,001,100)2可表示成八进制数(4414)8。

十六进制

逢十六进一,每四位为一组,即:(1001,0000,1100)2,每组的值大小是从0(0000)~15(1111)。用A,B,C,D,E,F分别代表10到15的6个数,则上面的二进制数可以表示成十六进制数(90C)16。

1.十进制与二进制数据相互转换

十进制到二进制的转换,通常要区分数的整数部分和小数部分,可以分别按除2取余数部分和乘2取整数部分两种不同的方法来完成。下面以一个例题介绍十进制转换为二进制。



2.其他进制数据转换

八进制到二进制

因为23=8,故1个八进制位对应3个二进制位,可以把1个八进制数的整数部分和小数部分的每1位分别转换成3位二进制数。

如:

103.4)8=(001000011.100)2
(741)8 =(111100001)2

二进制到八进制

因为23=8,故3个二进制位对应1个八进制位,可以从小数点位置分别向左和向右把每3位二进制数划分为1组,并转换成1位八进制数。注意:小数部分分组时,若低位不足3位时要用0补足,否则会出错。

如:

(10110110.1)2=(266.4)8,而不是(266.1)8

十六进制到二进制

因为24=16,故1个十六进制位对应4个二进制位,可以把1个十六进制数的整数部分和小数部分的每1位分别转换成4位二进制数。

(123)16=(0001,0010,0011)2
(D2C8)16=(1101,0010,1100,1000)2

二进制到十六进制

因为24=16,故4个二进制位对应1个十六进制位,可以从小数点位置分别向左和向右把每4位二进制数划分为1组,并转换成1位十六进制数。注意:小数部分分组时,若低位不足4位时要用0补足,否则会出错。

如:

(10110110.11)2=(1011, 0110.1100)16=(B6.C)16,而不是(266.3)16
(100110111)2=(1, 0011, 0111)8=(137)16

八、十六进制到十进制

采用对各位实际值累加求和的方法完成。

如:

(123)16=1×162+2×161+3×160=291
(123)8=1×82+2×81+3×80=83

十进制到八、十六进制数

可先将十进制数转换为二进制,再转换成对应的八、十六进制数;也可以将1个十进制数直接转换为对应的八进制或十六进制。

对整数,采用除8取余、高位在下的原则得到八进制数;或采用除16取余、高位在下的原则得到十六进制数。

相关文章