考虑两个简单的功能:
int return0Comp(){
return (~0);
}
int returnNeg1(){
return -1;
}
我知道在一个二进制补码系统~0==-1
上,但是由于系统没有使用它(这甚至发生了吗?*),这两个函数是否会返回不同的价值观?
答案 0 :(得分:2)
标准说[expr.unary.op.10]
〜的操作数应具有整数或无范围的枚举类型;该 结果是其操作数的补码。
我读到~
总是只反转所有位,因此结果的解释应该取决于所使用的表示。