乐趣区

关于python:一文了解进制之间的原理和转换

生存中咱们应用的数字都是十进制的,而二进制是机器可能辨认的最间接的语言。然而二进制又太大,记录起来十分的不不便。所以通常会将二进制转化为八进制或者十六进制。

日常生活中咱们所说的数字(十进制)在 0~9 之间,同理 二进制的范畴是 0~1,八进制的范畴 0~7,十六进制的范畴 0~15。那问题来了,当超过 9 之后,十六进制该如何示意呢?答案是用 a~f,示意对应的 10~15

进制的表白

在 Python 中该如何示意每一种进制呢?

  • 默认输出的数字为十进制
  • 以 0b 结尾的数字示意二进制
  • 以 0o 结尾的数字示意八进制
  • 以 0x 结尾的数字示意十六进制
# 一般的十进制
a = 12
print(a) # 12

# 0b 示意二进制
b = 0b100100 
print(b) # 36

# 0o 示意八进制
c = 0o56
print(c) # 46

# 0x 示意十六进制
d = 0x2a1
print(d) # 673

进制之间的转换

1、十进制转二进制

将十进制数除 2 取余数,直到商为 0 时。

以 12 为例,

12 / 2 = 6  余 0 

6  /  2 = 3  余 0

3  /  2 = 1  余 1

1  /  2 = 0  余 1

从上到下取余数 ,因而,12 对应的 二进制 为:1100

2、二进制转十进制

把二进阶按权开展,相加即可。如二进制位:1100,依照上面的格局开展

   0       0      1           1

1\*2^0    1\*2^1    1\*2^2    1\*2^3    

0 * 1*2^0 + 0 * 1*2^1 + 1 * 1*2^2 + 1 * 1*2^3 = 12

3、二进制与八进制转换

将 2 进制从右到左的程序依照 3 位拆分,有余时 补 0。例如二进制:1100 可拆分成

001 100 而后按权开展组合起来即可。

即:

02^2 + 0 2 ^ 1 + 1 * 2 ^ 0 = 1

12^2 + 0 2 ^ 1 + 0 * 2 ^ 0 = 4

因而对应的八进制为 14。

4、八进制转二进制

通过对八进制除 2 取余数,

1 的二进制为 1,不够 3 位补 0,即 001

4 的二进制为 100

因而八进制 14 转二进制的后果 为:001100

事实上,日常中用到的次要就是二进制和十进制的转换,其余理解一下就能够了。

在 Python 中,曾经讲各种进制的转换进行了封装,间接调用即可。

a = 12
print(bin(a)) # 0b1100   十进制转二进制
print(oct(a)) # 0o14  十进制转八进制
print(hex(a)) # 0xc   十进制转十六进制

# 二进制转十进制
print(int('0b1100', 2))

# 八进制转十进制
print(int('0o14', 8))

# 十六进制转十进制
print(int('0xc', 16))

文末福利,史上最全 Python 材料汇总(长期更新)。隔壁小孩都馋哭了 — 点击支付

退出移动版