【发布时间】:2011-05-27 08:35:41
【问题描述】:
我正在编写一个游戏服务器,这可能是一个简单的问题,但我只是想澄清一下。
为什么一个字节(char 或 unsigned char)可以容纳 255 的值(0xFF,我认为是 2 个字节)?当我使用 sizeof(unsigned char) 时,编译器告诉我它是 1 个字节。
是因为(在 ACSII 中)它正在“转换”为字符吗?
抱歉,我不太擅长描述问题。
【问题讨论】:
-
0xFF是 2 位数字,而不是 2 个字节。一个字节是 0..2^8-1。 -
0xFF 是 2 个半字节... 1 个字节...
-
您将需要阅读有关数据类型大小和范围here 的信息。
char可以是 8 位,也可以是 64 位;在任何情况下,“字节”都被定义为“字符”,因此一个字节可能超过 8 位。 -
一个字节不是 8 位。一个字节在标准中定义为
char的大小,不管是多少位。 ISO(和其他标准机构)倾向于使用术语八位字节来表示 8 位值。请参阅stackoverflow.com/questions/1535131/… 了解更多信息。