常用的进制
二进制: binary -> bin -> 0b/0B
八进制: octal -> oct -> 0o/00
十进制: decimal -> dec (默认情况,无需前缀)
十六进制: hexadecimal -> hex -> 0x/0X
十进制转八进制: “除8取余”(“除”,指的是“整除”)
18 对应二进制(由“余数”从下而上组成):22
2 2
0 2
八进制转十进制:乘方累加
比如:八进制16,对应十进制:8+6=14
八进制(n) |
3 |
2 |
1 |
0 |
十进制(8^n) |
512 |
64 |
8 |
1 |
|
|
|
|
|
八进制 |
|
|
1 |
6 |
十进制 |
|
|
8 |
6 |
十进制 VS 十六进制:同理。
二进制Bin VS 八进制Oct
规则:八进制1位,可拆分成二进制的3位
e.g. (八进制)0o77对应 (二进制)111 111
二进制Bin VS 十六进制Hex:
规则:十六进制1位,可拆分成二进制的4位(常用)
e.g. (十六进制)0xFF对应 (二进制)1111 1111;(十六进制)0xDD对应 (二进制)1101 1101;
python函数
十进制 -> 八进制:
oct(16) = ‘0o20’
八进制 -> 十进制:
int(‘0o20’, 8) = 16 int(‘0O20’, 8) = 16
十进制 -> 十六进制:
hex(255) = ‘0xff’
十六进制转 -> 十进制:
int(‘0XFF’, 16) = 255
100+1 = 101
0xff+0x1 = 256
0xff+0b0001 = 256
0o10*2 = 16
说明:直接运算时,无需添加单引号;使用int, oct, hex等进行进制转换时,需要对数值添加单引号
程序员们的“黑色幽默”
(1)呆萌的程序员们分不清万圣节(Oct 31)和圣诞节(Dec 25)
Oct 31 == dec 25
oct(25) = ‘0o31’;
(2)莎士比亚是“穿越”了的程序员?
To be or not to be
0x2b | ~0x2b = -1