← 知识手册目录计算机基础 · GESP 3 / 5 级相关跳到完整速查 ↓

PYTHON KNOWLEDGE · 11

进制、整数表示与位运算

从位权理解二、八、十六进制,准确使用补码模型、移位、掩码和 Python 大整数。

GESP 3GESP 5

01 · FORMAL DEFINITION

正式定义

b 进制数按位权 b⁰、b¹…表示数值。进制只是同一个整数的书写方式;位运算直接处理整数的二进制位。Python 整数精度只受可用内存限制,负数位运算按无限长二进制补码语义定义。

02 · MUST KNOW

学完这一章,必须说清楚的规则

  1. 01

    bin/oct/hex 生成带前缀字符串,int(text, base) 按指定进制解析;0b、0o、0x 是整数字面量前缀。

  2. 02

    手工转十进制用位权展开,十进制转其他进制可连续除基取余并逆序。

  3. 03

    & 取共同为 1 的位,| 合并置位,^ 标记不同位,~x 等于 -x-1。

  4. 04

    x << k 相当于 x * 2**k;对非负整数 x >> k 相当于 x // 2**k。

  5. 05

    掩码可检测、设置、清除或翻转特定位;位编号通常从最低位 0 开始。

  6. 06

    固定字长语言的溢出和 Python 大整数行为不同,题目必须明确字长和有无符号。

03 · RUNNABLE EXAMPLE

可运行示例与因果解释

PYTHON
x = 0b101101
print(x, bin(x))
print((x >> 2) & 1)
print(x | (1 << 1))
print(x & ~(1 << 3))

COMMON PITFALLS

常见误区

  • 把进制字符串当成不同数值类型
  • 忘记位编号从 0 开始
  • 照搬固定 32 位溢出结论到 Python
  • 对负数右移套用无符号模型

SCOPE & BOUNDARIES

适用边界

  • 浮点数遵循 IEEE 754 的实现细节,不使用本章的普通整数进制模型直接推导。
  • 字符编码把字符映射到整数,但编码知识与整数进制书写是两个不同层次。