char byte = 0x80
if(byte == 0x80)
{
cout << "This message never gets printed!";
}
Run Code Online (Sandbox Code Playgroud)
十六进制值0x80在二进制中是等效的1000 0000,它明显适合一个字节.
但是,编译器警告我有条件的行:
warning: comparison is always false due to limited range of data type
Run Code Online (Sandbox Code Playgroud)
在这种情况下,为什么条件为false的结果?
是否0x80有条件的扩展0x80000000?
是否可以使用==运算符检查是否char等于0x80?