python基础 - 02 进制及进制间的转换

进制及进制间的转换

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))

猜你喜欢

转载自blog.csdn.net/hanbo6/article/details/80299165
今日推荐