【C语言取反运算符】~2是多少?~-5是多少?-CSDN博客

网站介绍:文章浏览阅读6.4k次,点赞9次,收藏23次。标题的答案:~2=-3~-3=2原理是什么?我们先来看这个程序及输出的结果:容易总结出这样一个结论:~i=-i-1为什么呢?一言以蔽之,~运算符是对i的补码(含符号位)进行取反。2的原码是0000 0010 正数补码是其本身0000 0010取反(含符号位)后补码变成1111 1101 此时补码为负数,换成原码要符号位不变,减去1,再取反,即原码成了1000 0011 即为-3-5的原码是1000 0101 负数的补码是原码符号位不变、取反并+1,因此补码是1111 1011 ,对补码取_~2