十进制、二进制、八进制、十六进制互相转换
十进制数由0~9共10个数字字符组成,在十进制数的每一位上满十进一,在十进制每一位中表示最大数字为9.
二进制数由0和1两个数字字符组成,在二进制中“逢二进一”,在二进制每一位中表示最大数字为1.
八进制是由0~7共8个数字字符组成,在八进制中“逢八进一”,在八进制中每一位中表示最大数字为7.
十六进制是由0~9、A、B、C、D、E、F共16个字符组成,在十六进制中“逢十六进一”,在十六进制中最大的数是F。
首先,讲讲十进制转二进制:
例: 十进制要转二进制
就拿55除以2
55/2=27余1,在拿27除以2,27/2=13余1,在拿13除以2,13/2=6余1,在拿6除以2,6/2=3余下0,在拿3除以2,3/2=1余1,
那么十进制55转换成二进制就是110111
十进制转八进制
例子:十进制534转八进制
拿534除以8,534/8=66余6,在拿66除以8等于8余2,在拿8除以8等于1余0,那么十进制534转八进制就是1026.
十进制转十六进制
例子:十进制300转十六进制
拿300除以16的等于18余12(12在16进制中以C表示,10为A,B为11,一直到F为15),在拿18除以16等于1余下2,在拿1除以16,等于0,不用表示,那么十进制300转换为十六进制的结果为12C。
二进制转换为十进制
例子:111=1*4+1*2+1*1=7;
它有个对照表:
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
看二进制有多少位,对照表然后在拆开来相加。
二进制转换为八进制
有个方法,把二进制的数从右往左,三位一组,不够补0
列:111=4+2+1=7
11001拆分为 001和011,001=1,011=2+1=3;
那么11001转换为八进制就是31.
二进制转换为十六进制
参照二进制转八进制,但是它是从右往左,四位一组,不够补0
列子:1101101拆分为1101、0110
分别计算两个二进制的值,1101=8+4+0+1=13,十六进制中13为D
0110=4+2=6,那么二进制1101101转换为十六进制就是6D。
八进制转换为二进制
从后往前,每一位按十进制转化为三位二进制,缺位补0
列子:77,拆分开7=4+2+1=111
所以八进制的77转换位二进制得111111.
八进制转换为十进制
列子:555=5*8的2次方+5*8的一次方+5=320+40+5=365;
八进制转换位十六进制
先要把八进制转换位2进制,然后在把二进制转换位十六进制
例如:八进制721先转换为二进制,把一个个拆开
7=111,2=010,1=001,
得到二77进制111010001,然后转换为16进制,从右往左,四个一组,不够补0
111010001 拆开为 0001,1101,0001
0001=1,1101=8+4+1=13,十六进制的话,就为D,0001=1,那么转换为十六进制就是1D1
十六进制转换为二进制
把每一位数转换成二进制,每个数分四位,不足四位,前面补0
列子:2FD,分别拆开,2=0010,F=15=1111,D=13=1101
那么转换为二进制就得到 1011111101
十六进制转换为八进制
先将十六进制转换成二进制,(原则一位十六进制转四位二进制),在将二进制转换成八进制,(原则是从右往左三个,不够补0)
列子: 十六进制的2FD转换二进制得1011111101,在将二进制1011111101转换为八进制,从右边往左,四个一拆分,不够补0
1011111101拆分为 001,011,111,101,分别计算
001=1,011=2+1=3,111=4+2+1=7,101=4+1=5,那么最后转换为八进制就得到1375.
十六进制转换为十进制
跟八进制转换为十进制类似
列子:2D=2*16的一次方+13=2*16+13=45
十六进制的2D转换为十进制得到十进制45