为什么类型char返回不同的值?

Rya*_*Sam 0 c++

如果最大值char可以保持为255,那么如果我创建一个类型的变量char number并将其设置为等于= 255;那么std::cout << number;程序如何返回\377呢?

Lig*_*ica 6

\377 255.

\N为您提供八进制数表示的值N.

十进制255是八进制377是二进制1111 1111是十六进制FF.

另请注意,char如果char您的系统/编译器是无符号和8位,则最大值可以保持为255 .签名char不会达到那么高,如果你试图成功就会溢出.你可能想要unsigned char确定性(assert(CHAR_BIT==8)如果你真的是偏执狂:P).

  • 可以想象OP的shell输出不可打印的字符作为转义的八进制. (5认同)