1.进制
数字在计算机中的表现方式常见的有四种:十进制、八进制、二进制、十六进制
1.1 十进制
- **基数:**0,1,2,3,4,5,6,7,8,9
- **进位:**满10进1
- **位权:**10的n次方(n从地位到高位从0开始依次增加)
1231 = 1*10^3 + 2*10^2 + 3*10^1 + 1*10^0
- 程序中的表示方式:直接写
123
4112
1.2二进制
- 基数:0,1
- **进位:**满2进1
11011 + 10111 = 110010
1011 + 111010 = 1000101
- **位权:**2的n次方(n从地位到高位从0开始依次增加)
101011 = 1*2^5 +1*2^3 +1*2^1 +1*2^0 = 43
- **程序中的表示方式:**二进制数前加"0b"“或0B”
0b101
0B101101
1.3.八进制
- 基数:0,1,2,3,4,5,6,7
- **进位:**满8进1
76 + 45 = 143
45 + 66 = 133
- **位权:**8的n次方(n从地位到高位从0开始依次增加)
123 = 1*8^2 + 2*8^1 + 3*8^0 = 83
- **程序中的表示方式:**二进制数前加"0o"“或0O”
0o65
0o1234567
1.4.十六进制
- 基数:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
- **进位:**满16进1
9+6=F
7+9=10
- **位权:**16的n次方(n从地位到高位从0开始依次增加)
123 = 1*16^2 + 2*16^1 + 3*16^0
- **程序中的表示方式:**二进制数前加"0x"“或0X”
0X9af456
0x98abc1
**注意:**十进制数能做的事情其他进制数也能做
print(291 + 1)
print(0x + 2)
2.不同进制之间的转换
2.1其他进制转换为十进制
**1. 手动转换:**每一位数乘以位权在求和
例:
0b1011 -> 2^0 + 2^1 + 2^3 = 1 + 2 + 8 =11
0o 12 -> 2*8^0 + 1*8^1 = 10
0xaf - > 15*16^0 + 10*16^ = 175
**2. 使用代码:**直接使用print函数打印
print(0b10110)
print(0o45)
print(0xaf)
输出结果(十进制):
22
37
175
2.2十进制转换为其他进制
- 手动转换:手动取余
100 -> 0b1100100
100 -> 0o144
100 -> 0x64
- 使用代码:使用print打印
print(0b1100100,0o144,0x64)
输出结果:
100 100 100
2.3八进制转换为二进制
一位八进制数转换为三位二进制数
0o67 -> 0b110 111
6 7
2.4八进制转换为二进制
一位十六进制数转换为四 位二进制数
0xaf -> 0b1010 1111
a f
2.5代码转换
- bin(数字) -> 将数字转换为二进制
- oct(数字) -> 将数字转换为8进制
- hex(数字) -> 将数字转换为16进制
示例:
print(bin(100))
print(oct(100))
print(hex(100))
输出结果:
0b1100100
0o144
0x64