为什么c ++会返回此结果

时间:2013-01-14 23:33:40

标签: c++

当我想计算0的补码时,我得到-1作为答案。我认为它应该是一个很大的数字,因为它是11111111(我不知道我刚用8写了多少位)在二进制数系统中。

2 个答案:

答案 0 :(得分:10)

使用unsigned整数类型。对有符号整数的按位运算有很多实现定义的行为。

答案 1 :(得分:0)

当以2s补码解释值时,所有设置的位都是-1