小编典典

什么是无符号字符?

all

在 C/C++ 中,anunsigned char用于什么?和普通的有什么区别char


阅读 696

收藏
2022-03-11

共1个答案

小编典典

在 C++ 中,存在三种 不同的 字符类型:

  • char
  • signed char
  • unsigned char

如果您对 text 使用字符类型,请使用不合格的char

  • 它是字符文字的类型,例如'a'or '0'(仅在 C++ 中,在 C 中它们的类型是int
  • 它是构成 C 字符串的类型,例如"abcde"

它也可以作为一个数字值,但未指定该值是被视为有符号还是无符号。当心通过不等式进行字符比较 - 尽管如果您将自己限制在 ASCII (0-127)
范围内,那么您几乎是安全的。

如果您将字符类型用作 数字 ,请使用:

  • signed char,这 至少 为您提供了 -127 到 127 的范围。(-128 到 127 很常见)
  • unsigned char,它 至少 为您提供了 0 到 255 的范围。

“至少”,因为 C++ 标准只给出了每种数字类型需要覆盖的最小值范围。sizeof (char)要求为 1(即一个字节),但理论上一个字节可以是例如
32 位。 sizeof 仍会将其大小报告为1- 意味着您 可以 拥有sizeof (char) == sizeof (long) == 1.

2022-03-11