10

8位称为“字节”。16位怎么称呼?“短的”?“单词”?

那么32位呢?我知道“int”依赖于 CPU,我对普遍适用的名称感兴趣。

4

8 回答 8

16

字节是计算机可以处理的最小数据单位。C 语言定义char为一个“字节”并且有CHAR_BIT位。在大多数系统上,这是 8 位。

另一方面,通常是由 CPU 处理的值的大小。大多数时候,这是通用寄存器的大小。这个定义的问题是,它的年龄不够大。

例如,MS WindowsWORD数据类型是在早期定义的,当时 16 位 CPU 是标准。当 32 位 CPU 出现时,定义仍然存在,一个 32 位整数变成了DWORD. 现在我们有了 64 位QWORD的 s。

远非“普遍”,但这里有几种不同的看法:

窗户

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

广发银行

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

<stdint.h>

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

(也存在有符号类型。)

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

于 2013-01-06T10:19:49.607 回答
2

一组正好 8 位的正确名称实际上是一个octet。一个字节可能多于或少于 8 位(尽管这种情况比较少见)。

除此之外,据我所知,16 位、32 位等没有严格定义的术语。

于 2013-01-06T10:07:55.883 回答
2

Werner Buchholz 博士创造了字节这个词来表示“一个数字信息单位,用于描述一组有序的位,作为计算机可以处理的最小数据量”。因此,该词的实际含义取决于相关机器的架构。因此,一个字节中的位数是任意的,可以是 8、16 甚至 32。

有关该主题的详尽论文,请参阅Wikipedia

于 2013-01-06T10:14:27.423 回答
2

16 位或 32 位测量单位没有通用名称。

术语“字”用于描述程序或操作系统一次处理的位数。因此,在 16 位 CPU 中,字长为 16 位。在 32 位 CPU 中,字长为 32 位。我也相信这个术语有点灵活,所以如果我编写一个程序,它以 10 位的块进行所有处理,我可以将这些 10 位的块称为“单词”。

只是要清楚; “int”不是计算机内存的度量单位。它实际上只是用于存储整数的数据类型(即小数部分为零的数字)。因此,如果您找到一种在您的编程语言中仅使用 2 位(或其他)实现整数的方法,那仍然是一个 int。

于 2013-01-06T10:18:55.200 回答
0

我曾经将它们称为字节、字和长字。但正如其他人所提到的,它取决于您正在处理的本机架构。

于 2013-01-06T10:08:13.147 回答
0

它们被称为2字节和4字节

于 2013-01-06T10:08:23.877 回答
0

16 位和 32 位没有任何通用术语。单词的大小取决于机器。

于 2013-01-06T10:09:32.287 回答
0

shortword并且int都依赖于编译器和/或架构。

  • int是一种数据类型,通常在桌面 32 位或 64 位系统上为 32 位。我认为它永远不会大于底层硬件的寄存器大小,因此它应该始终是一种快速(并且通常足够大)用于常见用途的数据类型。
  • short 那么可能尺寸更小int,这就是你所知道的。实际上,它们通常是16 位的,但您不能依赖它。
  • word不是数据类型,而是表示底层硬件的自然寄存器大小。

而关于 16 位或 32 位的名称,则没有。没有理由给它们贴上标签。

于 2013-01-06T10:17:02.973 回答