名称为16位和32位

Eci*_*ana 7 bits terminology conventions

8位称为"字节".如何调用16位?"短"?"字"?

32位怎么样?我知道"int"依赖于CPU,我对普遍适用的名称感兴趣.

Jon*_*art 10

字节是一台计算机可以一起工作的数据的最小单位,并且其典型地为8位.

在另一方面,通常是典型地由CPU处理的值的大小.大多数情况下,这是通用寄存器的大小.这个定义的问题是它没有很好的老化.

例如,MS Windows WORD数据类型是在早期定义的,当时16位CPU是常态.当32位CPU出现时,定义仍然存在,并且32位整数变为了DWORD.现在我们有64位QWORD的.

远非"普遍",但这里有几个不同的看法:

Windows:

  • BYTE - 8位,无符号
  • WORD - 16位,无符号
  • DWORD - 32位,无符号
  • QWORD - 64位,无符号

GDB:

  • 字节
  • 半字(两个字节).
  • 字(四个字节).
  • 巨字(八字节).

<stdint.h>:

  • uint8_t - 8位,无符号
  • uint16_t - 16位,无符号
  • uint32_t - 32位,无符号
  • uint64_t - 64位,无符号
  • uintptr_t - 指针大小的整数,无符号

(也有签名类型.)

如果您正在尝试编写依赖于特定数据类型大小的可移植代码(例如,您正在实施网络协议),请始终使用<stdint.h>.