相关疑难解决方法(0)

使用==运算符将char与0x80进行比较总是会导致错误?

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

c++ binary byte types char

3
推荐指数
1
解决办法
3065
查看次数

标签 统计

binary ×1

byte ×1

c++ ×1

char ×1

types ×1