负 ASCII 值有什么意义?
int a = '«'; //a = -85 but as in ASCII table '<<' should be 174
最佳答案
没有负数ASCII值。 ASCII 包括 128 个字符的定义。他们的指数都是正数(或零!)。
您看到此负值是因为该字符来自 Extended ASCII 集并且太大而无法放入 char 文字中。因此,该值会溢出到定义负值的 char
位(显然是在您的系统上签名)。
解决方法是直接写入值:
unsigned char a = 0xAE; // «
为了约定,我用十六进制表示法编写它,因为我认为它看起来比 174
更漂亮。 :)
关于c++ - 负 ASCII 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4690415/