【问题标题】:The name of 16 and 32 bits16 位和 32 位的名称
【发布时间】:2013-01-06 10:05:46
【问题描述】:

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

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

【问题讨论】:

  • 我对通用名称很感兴趣。 那么您应该使用的通用名称是“16 位”和“32 位”。如果您的通用名称上下文排除了专门针对 8 位的 byte,则可以使用“8-bits”或“octet”。

标签: terminology conventions bits


【解决方案1】:

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

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

例如,MS Windows WORD 数据类型是在早期定义的,当时 16 位 CPU 是标准配置。当 32 位 CPU 出现时,定义仍然存在,32 位整数变成了DWORD。现在我们有了 64 位 QWORDs。

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

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>

【讨论】:

  • 现货。这些术语在处理计算机体系结构和汇编语言(低级编程)时非常重要。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 正如维基百科文章所说,事实上的现代用法是“字节”始终是 8 位(即使对于使用 32 位或 64 位字的机器)。字节的其他定义在早期的计算中确实存在,但现在这些实际上是过时的用法。
    • @Luke 我不会说“过时”;有CHAR_BIT为16或32的DSP芯片:stackoverflow.com/questions/32091992/is-char-bit-ever-8
    【解决方案4】:

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

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

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        分别称为2字节和4字节

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            【解决方案8】:

            shortwordint 都依赖于编译器和/或架构。

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-05-02
              • 2010-09-06
              • 2017-03-11
              • 1970-01-01
              • 2010-12-12
              • 2011-08-14
              相关资源
              最近更新 更多