⼆进制、⼋进制、⼗进制、⼗六进制的转换⼆进制(binary)数据是⽤0和1来表⽰的数,它的基数为2,进位规则是“逢2进1”。
⼋进制(Octal)数据是⽤ 0~7这8数来表⽰⼀个数,它的基数为8,⼋进制就是“逢8进1”,⼋进制的数和⼆进制数可以按位对应(⼋进制⼀位对应⼆进制三位)。
⼗进制(Decimal)数据是⽤0~9这10位来表⽰⼀个数,它的基数为10,⼗进制就是“逢10进1”。
⼗六进制(Hexadecimal)数据是⽤0~9和A~F(10~15)这16位来表⽰⼀个数,它的基数为16,⼗六进制就是“逢16进1”。⼗六进制的数和⼆进制数可以按位对应(⼗六进制⼀位对应⼆进制四位)。
⼀、(⼆、⼋、⼗六进制)转换为⼗进制
1.⼆进制转换为⼗进制
⽅法:⼆进制数从低位到⾼位(即从右往左)计算,第1位的权值是2的0次⽅,第2位的权值是2的1次⽅,第3位的权值是2的2次⽅,第n 位的权值是2的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(1010)2=0*2^0+1*2^1+0*2^2+1*2^3=(10)10
2.⼋进制转换为⼗进制
⽅法:⼋进制数从低位到⾼位(即从右往左)计算,第1位的权值是8的0次⽅,第2位的权值是8的1次⽅,第3位的权值是8的2次⽅,第n 位的权值是8的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(23)8=3*8^0+2*8^1=(19)10
3.⼗六进制转换为⼗进制
⽅法:⼗六进制数从低位到⾼位(即从右往左)计算,第1位的权值是16的0次⽅,第2位的权值是16的1次⽅,第3位的权值是16的2次⽅,第n位的权值是16的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(3A)16=A*16^0+3*16^1=(58)10
总结:任意进制转换为⼗进制算法,从低位到⾼位(即从右往左),依次将第n位的值*任意进制的(n-1)次⽅相加。
⼆、⼗进制转换为(⼆、⼋、⼗六进制)
1.⼗进制转换为⼆进制
⽅法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,⽽商继续除以2,余数⼜为上⼀个位权上的数,这个步骤⼀直持续下去,直到商为0为⽌,最后读数时候,从最后⼀个余数读起,⼀直到最前⾯的⼀个余数。
eg:将(36)10转换为⼆进制,步骤:
a.36/2商18余数为0;
b.18/2商9余数为0;
c.9/2商4余数为1;
d.4/2商2余数为0;
e.2/2商1余数为0;
f.1/2商0余数为1;
所以(36)10=(100100)2(因为最后⼀位是经过多次除以2才得到的,因此它是最⾼位,读数时从
最后的余数向前读)
2.⼗进制转换为⼋进制
⽅法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,⽽商继续除以8,余数⼜为上⼀个位权上的数,这个步骤⼀直持续下去,直到商为0为⽌,最后读数时候,从最后⼀个余数读起,⼀直到最前⾯的⼀个余数。
eg:将64(10)转换为⼋进制,步骤:
a.64/8商8余数为0;
b.8/8商1余数为0;
c.1/8商0余数为1;
所以(64)10=(100)8(因为最后⼀位是经过多次除以8才得到的,因此它是最⾼位,读数时从最后的余数向前读)
3.⼗进制转换为⼗六进制
⽅法:除16取余法,即每次将整数部分除以16,余数为该位权上的数,⽽商继续除以16,余数⼜为上⼀个位权上的数,这个步骤⼀直持续下去,直到商为0为⽌,最后读数时候,从最后⼀个余数读起,⼀直到最前⾯的⼀个余数。
eg:将326(10)转换为⼋进制,步骤:
a.326/16商20余数为6;
b.20/16商1余数为4;
c.1/16商0余数为1;
所以(326)10=(146)16(因为最后⼀位是经过多次除以16才得到的,因此它是最⾼位,读数时从最后的余数向前读)支持小数点的进制转换器
总结:⼗进制转换为任意进制算法,除任意进制取余法,直到商为0为⽌,读数时将最后⼀位放在最⾼位,依次向前读。
三、⼆进制和(⼋、⼗六进制)间的转换
1.⼆进制转换为⼋进制
⽅法:取三合⼀法,即从⼆进制的⼩数点为分界点,向左(向右)每三位取成⼀位,接着将这三位⼆进制按权相加,然后,按顺序进⾏排列,⼩数点的位置不变,得到的数字就是我们所求的⼋进制数。如果向左(向右)取三位后,取到最⾼(最低)位时候,如果⽆法凑⾜三位,可以在⼩数点最左边(最右边),即整数的最⾼位(最低位)添0,凑⾜三位。
eg:将(1010100.01010)2转换为⼋进制,步骤:
a.⼩数点左边:100=4,010=2,001=1;
b.⼩数点右边:010=2,100=4;
所以(1010100.01010)2=(124.24)8
2.⼋进制转换为⼆进制
⽅法:取⼀分三法,即将⼀位⼋进制数分解成三位⼆进制数,⽤三位⼆进制按权相加去凑这位⼋进制数,⼩数点位置不变。
eg:将(231.54)8转换为⼆进制,步骤:
a.⼩数点左边:2=010,3=011,1=001;
b.⼩数点右边:5=101,4=100;
所以(231.54)8=(10011001.1011)2
3.⼆进制转换为⼗六进制
⽅法:取四合⼀法,即从⼆进制的⼩数点为分界点,向左(向右)每四位取成⼀位,接着将这四位⼆进制按权相加,然后,按顺序进⾏排列,⼩数点的位置不变,得到的数字就是我们所求的⼗六进制数。如果向左(向右)取四位后,取到最⾼(最低)位时候,如果⽆法凑⾜四位,可以在⼩数点最左边(最右边),即整数的最⾼位(最低位)添0,凑⾜四位。
eg:将(101010111)2转换为⼗六进制,步骤:
a.0111=7;
b.0101=5;
c.0001=1;
所以(101010111)2=(157)16
4.⼗六进制转换为⼆进制
⽅法:取⼀分四法,即将⼀位⼗六进制分解成四位⼆进制,⽤四位⼆进制按权相加去凑这位⼗六进制数,⼩数点位置不变。
eg:将(B6)16转换为⼆进制,步骤:
a.B=1011;
b.6=0110;
所以(B6)16(B6)16=(10110110)2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。