C语言的位运算中,~0为什么等于-1呢?怎么不是1呢?

如题所述

按位取反,0就是 32个0bit(针对int类型), 取反后是32个1bit即16进制的0xffff_ffff ,而-1==0xffff_ffff,所以0取反就是-1。。。怎么算出来很简单, 计算机中数据是补码形式存储, -1对应的补码是1取反+1, 1取反==0xffff_fffe, 那么再+1就是 0xffff_ffff。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-07
"~" 是指位元运算.
你要0 => 1, 1=> 0, 这叫做逻辑运算, 应该用 "!"

请再多查查书, 看清楚差异.追问

~这是位运算中的取反运算啊

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网