"~"在C语言中是什么意思

如题所述

是按二进制的位取反,即二进制各位是1的变为0,是0的变为1。

例如,整数型的数据,大多数C编译系统中都是规定用16位二进制表示。所以如果写
~12345
就应该如下计算:
整数12345的二进制形式是0011000000111001,
故~12345的二进制形式是1100111111000110,等于十进制数53190。

补充一点:
我这里说“等于十进制数53190”,是假设这个数据是“无符号整数”即unsigned int型的。
假如不是“无符号”的而是“有符号”的int型,那么十进制数53190就已经溢出了。按照有符号数的“补码表示规则”,二进制的1100111111000110将被看作负数,即十进制的-12346。
这已经牵涉到另一个问题了。

总之,
对unsigned int型:~12345等于53190;
对于int型:~12345等于-12346。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-06
前置运算符,对后续的对象按位取反。
第2个回答  2011-09-05
取反,就是相反的意思本回答被提问者采纳
第3个回答  2011-09-06
按位取反,如~1011为
0100
第4个回答  2020-01-13

相关了解……

你可能感兴趣的内容

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