c语言中的一个字节可能长于8位?

那儿有个活人
  • 2.4k

windows程序设计 第5版:

理论上来说,C语言中的一个字节可能长于8位,但是对于大多数人来说,一个字节(因而就是一个char)是8位宽.

这句话谁不是说错了?我觉得应该是这样:
C语言中的一个字符可能长于8位

回复
阅读 3.7k
2 个回答

正好由于有疑问我才逛到这里,现在总算有些了解了。
不过,不太确定你贴的原文和我下面描述的是不是一个意思,如果可以的话,可以在评论区讨论一下。

先来贴一段《C primer plus》的原文:

许多字符集包含远多于127甚至远多于255个值,例如,日本的kanji字符集。balabala
采用上述集合之一作为基本字符集的平台应该使用16位甚至32位的char表示方法。C把一个字节(byte)定位为char类型使用的位(bit)数。所以在这样的系统上,C语言中提到的一个字节是16位或者32位,而不是8位。

注意,有一个前提“采用上述集合之一作为基本字符集”。也就是说,你使用某些较大的字符集(比如Unicode字符集,超过96000个字符)作为基本字符集的平台上,C语言就会把字节定义32位。但是绝大多数系统都是使用ASCII为基本字符集,所以你可以默认为这些系统上C语言把字节定义为8位。

处于对32位的微机来说,一个字节的大小就是8位,你的理解应该是正确的。因为计算机组成原理里面清楚说明,1个字节的大小就是8位

你知道吗?

宣传栏