1、定义
二进制:使用0和1表示,逢2进1,通常以0b或0B开头。例如:110表示
0 1 2(10) 11 12(20(100)) 101 102(110)
八进制:使用0到7的数字表示,逢8进1,通常以0开头。,例如:123表示
0、1、2、3、4、5、6、7(逢8进1)
十进制:使用0到9的数字表示,逢10进1,没有特定前缀。例如:123表示123
0、1、2、3、4、5、6、7、8、9(逢10进1)
十六进制:使用0到9和A到F的字母表示,通常用以0x或0X开头,例如:0x1A表示26
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F(逢16进1)
2、进制间转换
2.1 十进制转二进制、八进制、十六进制
# 1.十进制转二进制
例: 18, 从下往上依次读数,为10010
2 | 18
2 | 9 0
2 | 4 1
2 | 2 0
2 | 1 0
0 1
# 2.十进制转八进制
例: 18, 从下往上依次读数,为22
8 | 18
8 | 2 2
0 2
# 3.十进制转十六进制
例: 18, 从下往上依次读数,为12
16 | 18
8 | 1 2
0 1
2.2 二进制转八进制、十进制、十六进制
# 二进制转八进制:由于2^3=8,所以每3位二进制数字可以转为1位八进制数字,不够前面补0,从右往左计数
例:10111001 -> 271(8进制)
010=0*2^2 + 1*2^1 + 0*2^0 = 2
111=1*2^2 + 1*2^1 + 1*2^0 = 7
001=0*2^2 + 0*2^1 + 1*2^0 = 1
# 二进制转十进制
例:10111001 -> 128+32+16+8+1=185(10进制)
1=1*2^7=128
0=0*2^6=0
1=1*2^5=32
1=1*2^4=16
1=1*2^3=8
0=0*2^2=0
0=0*2^1=0
1=1*2^0=1
# 二进制转十六进制,由于2^4=16,所以4位二进制数字可以转为1位十六进制数字,不够前面补0,从右往左计数
例:10111001 -> 即B9(16进制)
1011= 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 11 -> B
1001= 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 9
2.3 八进制、十六进制转十进制
# 八进制转十进制
例:277 -> 即191(10进制)
2*8^2+7*8^1+7*8^0=191
# 十六进制转十进制
例:2AE -> 即686(10进制)
2*16^2+A(10)*16^1+E(14)*16^0=686
2.4 八进制、十六进制转二进制
在这里插入代码片
# 八进制转二进制
# 由于2^3=8,所以八进制的1位是二进制的3位
例:226 -> 10010110 (2进制)
2=010 (不足补0)
2=010 (不足补0)
6=1
2 | 6
2 | 3 0
2 | 1 1
2 | 0 1
# 十六进制转二进制
# 由于2^4=16,所以八进制的1位是二进制的4位
例:2AE -> 1010101110 (2进制)
2=0010(不足补0)
A(10)
2 | 10
2 | 5 0
2 | 2 1
2 | 1 0
2 | 0 1
E(14)
2 | 14
2 | 7 0
2 | 3 1
2 | 1 1
2 | 0 1