【发布时间】:2011-08-09 13:51:10
【问题描述】:
如果 char 和 signed char 的范围都在 -127 到 127 之间,那么 signed char 的用途是什么? 我们在哪里使用signed char 而不是char?
【问题讨论】:
-
谁说 char 的范围是 -127 到 127?甚至signed char 也没有那个范围。
-
8 位有符号字符为 -128 到 +127。
-
@Flinsch:仅当
CHAR_BIT等于8! -
@R. Martinho Fernandes:是的,正是这样。 -127 到 127 是
signed char的最小允许范围。 不需要来表示-128。显然,如果它是 2 的补码,那么它确实如此。由于 2 的补码几乎无处不在,人们倾向于将其视为有保证的,但事实并非如此。 -
为了补充史蒂夫所说的(megalols):
[2003: 3.9.1/7]“bool、char、wchar_t 类型以及有符号和无符号整数类型统称为整数类型。同义词对于整数类型是整数类型。整数类型的表示应使用纯二进制计数系统定义值。[示例:本国际标准允许整数类型的 2 的补码、1 的补码和有符号幅度表示。]"