【发布时间】:2012-11-05 03:24:42
【问题描述】:
好的,这是我以前从未见过的奇怪问题:
#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
【问题讨论】:
-
修改了问题标题以更加具体,以帮助搜索的人。