Python - 进制(二、八、十、十六)详解

在编程中,int 类型的进制(如二进制、八进制、十进制、十六进制)主要用于不同场景下的数据表示和操作。

(1) 二进制(Base 2)
核心应用场景

  • 位操作:处理硬件寄存器、标志位、权限开关等需要逐位控制的情况。
  • 数据压缩:存储或传输二进制数据时的高效表示。
  • 加密算法:位运算常用于加密逻辑。
# Pytho 中通过0b(零b)表示二进制
num = 0b1010  # 二进制前缀 0b → 十进制 10

应用实例:

# 1.劝降管理(位掩码)
READ = 0b100   # 4 (读权限)
WRITE = 0b10   # 2 (写权限)
EXECUTE = 0b1  # 1 (执行权限)

user_permission = READ | WRITE  # 0b110 (6),表示有读和写权限
if user_permission & READ:
    print("允许读取")
# 2. 图像处理(像素通道操作)
# 将RGB颜色拆分为单独通道
pixel = 0xFFAABB  # 十六进制表示的RGB颜色
red = (pixel >> 16) & 0xFF  # 提取红色通道 → 0xFF
green = (pixel >> 8) & 0xFF  # 提取绿色通道 → 0xAA
blue = pixel & 0xFF          # 提取蓝色通道 → 0xBB

(2)八进制(Base 8)
核心场景:

  • Unix文件权限:表示文件或目录的权限(如 chmod 755)
  • 遗留系统兼容:旧代码或特定协议中数值表示
#Python的表示
num = 0o755  # 八进制前缀 0o → 十进制 493

实际应用:

# 设置Unix文件权限为rwxr-xr-x(对应八进制755)
permission = 0o755  # 权限:用户读/写/执行,组读/执行,其他读/执行
print(f"权限掩码:{permission}")  # 输出 493(十进制)

(3)十进制(Base 10)
核心场景:

  • 日常计算:默认的数值表示方式,适用于数学运算、计数、金额处理等。
  • 用户交互:人类可读性最高的进制。
#python的表示
num = 42  # 默认十进制 → 42

# 实际应用
# 计算商品总价(单位:分,避免浮点误差)
price = 1999  # 19.99元(以分为单位)
quantity = 3
total = price * quantity  # 5997分 → 59.97元

(4)十六进制(Base 16)
核心场景:

  • 内存地址表示:调试或底层编程时显示内存地址(如 0x7ffeebf0)。
  • 颜色编码:HTML/CSS 中的颜色值(如 #FF0000 表示红色)。
  • 字符编码:Unicode 字符的表示(如 U+0041 对应 0x41,即字母 A)。
#Python表示
num = 0xFF  # 十六进制前缀 0x → 十进制 255

实际应用示例:

# 颜色处理
red = 0xFF0000    # 纯红色
green = 0x00FF00  # 纯绿色
blue = 0x0000FF   # 纯蓝色

# 内存调试
# 查看对象的内存地址(十六进制输出)
data = [1, 2, 3]
address = id(data)          # 获取内存地址(十进制)
hex_address = hex(address)  # 转换为十六进制 → 如 0x7f8a1c00
print(f"对象地址:{hex_address}")

(5)进制转换方法

Python - 进制(二、八、十、十六)详解_第1张图片

# 二进制转十进制
binary_num = "1101"
decimal_num = int(binary_num, 2)  # → 13

# 十进制转十六进制
decimal_num = 255
hex_str = f"{decimal_num:#x}"     # → '0xff'

# 任意进制转换(如将十六进制转为二进制)
hex_num = "1a"
binary_str = bin(int(hex_num, 16))[2:]  # → '11010'

Python - 进制(二、八、十、十六)详解_第2张图片

你可能感兴趣的:(Python - 进制(二、八、十、十六)详解)