☰
机器字长、位、字节、整型类型
2026/9/28 4:36:50 网站建设 项目流程

1. bit(比特)

计算机最小存储单位,仅存 1 位二进制:0或1,无单独寻址能力。

2. Byte(字节)

内存可直接寻址的最小基本单元

1Byte = 8 bit 所有内存读写、变量分配都以字节为单位。

3. 机器字长

定义:CPU单次运算 / 数据传输能处理的二进制位数,等于通用寄存器位数。

  • 32 位 CPU:机器字长 = 32bit(4Byte)
  • 64 位 CPU:机器字长 = 64bit(8Byte)

特性:

  1. 字长越长,单次可运算数据位数越多,运算性能更强;
  2. 定点数表示范围更大、浮点小数有效位数更多(数值精度更高);
  3. 决定系统最大寻址空间(地址总线位数匹配字长)。

4. int 与机器字长

C 语言标准强制约束:int最少16bit(2 字节)实际平台实现规则:

  • 16 位老式机器:int = 16bit
  • 32/64 位通用 PC:int = 32bit(4字节)

规律:现代平台int统一固定 32 位,不完全等于机器字长(64 位机字长 64,但 int 仍是 32)

5. unsigned long 与寻址、指针

指针(地址)

指针存储内存地址,宽度等于机器字长:

  • 32 位机:指针void*= 32bit(4B)
  • 64 位机:指针void*= 64bit(8B)

unsigned long 平台差异

  1. 32 位系统:unsigned long = 32bit,和指针宽度一致;
  2. 64 位 Windows(LLP64 模型):unsigned long = 32bit,指针 64bit(不等);
  3. 64 位 Linux/macOS(LP64 模型):unsigned long = 64bit,和指针宽度一致;

总结:仅类 Unix 64 位系统中unsigned long等于指针大小,Windows 64 位不满足,不能简单等同于寻址宽度。

易混对比速记表

概念本质说明单位关系
bit最小二进制存储位1bit = 0/1
Byte内存最小寻址单元1Byte = 8bit
机器字长CPU 一次处理的数据位宽32/64bit,等于寄存器位
int基础整型,标准≥16bit现代平台固定 32bit
指针 / 地址存储内存地址,匹配机器字长32 位 4B / 64 位 8B
unsigned long无符号长整型,平台可变Linux64=8B,Win64=4B

补充易错点

  1. 不要认为int一定等于机器字长:64 位 CPU 字长 64,但 int 依旧 32 位;
  2. 不要认为unsigned long永远等于指针:Windows64 下二者宽度不同;
  3. 精度逻辑:同等编码方式下,位数越多,可表示数值范围越大、小数精度越高。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询