【问题标题】:Why is 1 Byte equal to 8 Bits? [closed]为什么 1 字节等于 8 位? [关闭]
【发布时间】:2017-08-08 03:13:04
【问题描述】:

为什么不是 4 位或 16 位?

我假设一些与硬件相关的原因,我想知道 8bit 1byte 是如何成为标准的。

【问题讨论】:

    标签: byte bit


    【解决方案1】:

    自从我学习计算机组织以来已经过了一分钟,但是“字节”上的相关 wiki 提供了一些背景信息。

    字节最初是可以容纳单个字符的最小位数(我假设是标准 ASCII)。我们仍然使用 ASCII 标准,因此每个字符 8 位仍然是相关的。例如,这句话是 41 个字节。对于我们的目的来说,这很容易数和实用。

    如果我们只有 4 位,则只有 16 (2^4) 个可能的字符,除非我们使用 2 个字节来表示单个字符,这在计算上效率较低。如果我们在一个字节中有 16 位,我们的指令集中将有更多的“死空间”,我们将允许 65,536 (2^16) 个可能的字符,这将使计算机在执行字节级指令时运行效率降低,尤其是因为我们的字符集要小得多。

    此外,一个字节可以表示 2 个半字节。每个半字节为 4 位,这是可以编码从 0 到 9(10 个不同数字)的任何数字的最小位数。

    【讨论】:

    • 更正,ASCII 使用 7 位。
    • 除了“这句话”不是用 ASCII 编码的。它以 UTF-8 编码。 ASCII 的用途非常有限且专门。 UTF-8 是 Unicode 字符集的编码。 HTML、XML、……中的所有文本都是 Unicode。请参阅此页面的 HTTP 响应标头,以了解 Web 服务器以 UTF-8 对其进行编码。 (按 F12,然后按 F5,然后选择请求名称 42842817。)如果您查阅 HTTP 规范,您会发现 HTTP 标头实际上是 ASCII。所以我们确实每天都使用 ASCII,但我们很少在新程序中使用。
    • 这就是他们称之为 UTF-8 的原因吗?因为它使用完整的 8 位字节?哈哈
    • 没有。之所以称为 UTF-8,是因为代码单元是 8 位。每个代码单元都提供了 21 位 Unicode 代码点所需的一些位。一个代码点需要 1 到 4 个 UTF-8 代码单元。 UTF-16 和 UTF-32 也是如此。然而,按照设计,一个代码点永远不需要超过一个 UTF-32 代码单元。
    猜你喜欢
    • 1970-01-01
    • 2019-06-06
    • 2013-03-08
    • 2010-12-13
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多