ASCII 中多少位代表一个字符,多少位代表一个字节?

J p*_*tel 4 encode character-encoding

我知道它很简单,但我仍然不知道。有人说3是7位代表一个字符,有人说是8位。那么谁能告诉我哪一个是正确的呢?如果是8位/字符那么多少位代表一个字节?如果是 7,那么有多少位代表一个字符,有多少位代表一个字节?

小智 5

US-ASCII 实际上是每个字符 7 位。最高代码值为 127,代表DEL控制字符。任何具有较高值的​​代码的字符集都不是 US-ASCII(但可能是它的扩展,例如 Unicode)。

大多数微处理器使用八位字节(=最小可寻址存储单元)。如果您想在这些微处理器上使用 US-ASCII,您有两个选择:

  • 使用 7 个字节(每个 8 位)来存储 8 个字符(每个 7 位),尽管这会使程序变得非常复杂。
  • 使用 1 个字节(8 位)来存储 1 个字符(7 位),即使这样会浪费空间。

在这种情况下,对简单程序的需求超过了对高效内存使用的需求。这就是为什么您通常使用一个 8 位单元(简称八位字节)来存储一个字符,即使每个字符仅以 7 位单元编码。您只需将额外的位设置为零(或者,如在某些情况下所做的那样,使用额外的位进行错误检测)。