C语言求大神!!~按位取反,0取反为什么是-1不是1?

2025-02-25 01:30:33
推荐回答(2个)
回答1:

按位取反是指按照"二进制位"
0 的二进制为 0000 0000 0000 0000
取反以后得到 1111 1111 1111 1111
这个是-1的补码

回答2:

如果0代表32位int的话,取反后就是
11111111 11111111 11111111 11111111,
上边的二进制如果代表有符号整数的话是-1,无符号整数的话是2^32 - 1