C++短整型-1的补码为什么是1111111111111111而不是0000000011111111

2024-12-02 03:55:36
推荐回答(4个)
回答1:

-1用2进制表示
1 000000000000001 //最高位为符号位

符号位不变 各位求反
1 111111111111110

+ 1
11111111111111111

这个很容易理解的。 在C/C++中 就是 cout<<(~1 + 1)<
观楼主英俊潇洒,风流倜傥,必当世豪杰,大侠闲暇之余,关注0x30百度贴吧,必成千秋霸业,建不世之功。

回答2:

-1二进制码 1000 0000 0000 0001
反码 1111 1111 1111 1110
补码 = 反码 + 1 1111 1111 1111 1111

回答3:

1的补码是0000000000000001反码是1111111111111110补码是111111111111111

回答4:

额 -1原码10000000000000001 反吗11111111111111110 所以补11111111111111111