1.进制
(1). 十进制: 基数: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
特点: 逢10进1
234 = 4 + 30 + 200 = 4(10^0) + 3(10^1) + 2*(10^2)
(2). 二进制: 基数: 0, 1
特点: 逢2进1
表示方法: 加 0B(0b)前缀 如:0b110
方法: 64 32 16 8421 法--->最快
(3). 八进制: 基数: 0, 1, 2, 3, 4, 5, 6, 7
特点: 逢8进1
表示方法: 加 0O(0o)前缀 如:0o110
(4).十六进制: 基数: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f (A,B,C,D,E,F)
特点: 逢16进1
表示方法: 加 0X(0x)前缀 0x110
例如: print(110) print(0b110) print(0o110) print(0x110)
2.进制间的互相转换
(1) 十进制转其他制:
十进制转二进制: 整除取余法--->除以2,余数逆序写 90 --->1011010
十进制转八进制: 整除取余法--->除以8,余数逆序写 90 ---> 132
十进制转十六进制: 整除取余法--->除以16,余数逆序写 90 ---> 5a
(2)其他制转十进制:
二进制转十进制: 1011 = 1(2^0) + 1(2^1) + 0(2^2) + 1(2^3) = 11
八进制转十进制: 21 -> 1(8^0) + 2(8^1) = 17
十六进制转十进制: 2f -> 15(16^0) + 2(16^1) = 47
总结: 从个位数开始,相对应的数乘以(进制的次方),然后相加. 注意: 次方从0开始, 也就是相对于的个位数是0.
(3)二进制转其他制:
二进制转八进制: 三位的二进制转换成一位的八进制,不足三位高位补0. 110 110 010 ---> 662
二进制转十六进制: 四位的二进制转换成一位的十六进制,不足四位高位补0. 0011 1011 0010 ---> 3b2
(4)其他制转二进制:
八进制转二进制: 一位的八进制转换成三位的二进制 56 ---> 101 110
十六进制转二进制: 一位的十六进制转换成四位的二进制 239 ---> 0010 0011 1001
(5)特殊的八进制和十六进制互转:
八进制和十六进制之间的相互转换: 可以先转换成二进制,再转换成十六进制或者八进制, 以二进制位中介. 75 ->3d
3.进制转换的相关函数
print(bin(120)) #bin():转二进制 print(oct(120)) #oct():转八进制 print(hex(120)) #hex():转十六进制 总结:如果不使用函数特意的转换,所有类型的进制数值,最终都是以十进制数进行存储.
4.练习: 将1230 转换成二进制,八进制,十六进制:
print(bin(1230)) print(oct(1230)) print(hex(1230))