好的,这是一个我从未见过的奇怪问题:
#include <iostream>
int main()
{
char testchar = 255;
std::cout << (unsigned int)testchar << std::endl;
}
输出:
4294967295
到底是什么?似乎因为 char 是“满的”,所以当它生成新的 unsigned int 类型时,结果也是“满的”。这不是我记得的或我期望的结果。我希望 unsigned int 的值为 0x000000FF。任何人都可以向我解释到底发生了什么吗?
系统:Ubuntu 12.04 64 位
g++ 版本:4.6.3