返回-1和〜0的函数之间有很大的区别吗?

时间:2015-10-28 06:09:06

标签: c++ binary twos-complement

考虑两个简单的功能:

int return0Comp(){
    return (~0);
}

int returnNeg1(){
    return -1;
}

我知道在一个二进制补码系统~0==-1上,但是由于系统没有使用它(这甚至发生了吗?*),这两个函数是否会返回不同的价值观?

1 个答案:

答案 0 :(得分:2)

标准说[expr.unary.op.10]

  

〜的操作数应具有整数或无范围的枚举类型;该   结果是其操作数的补码。

我读到~总是只反转所有位,因此结果的解释应该取决于所使用的表示。