运算符"!"是逻辑非运算符;"~"才是按位取反运算符。
经过"!"运算后,运算结果只有0或1;而经过"~"运算后,结果有多种,取决于操作数。
下面通过实例来介绍这个运算符的使用方法:
int a=10, b, cb = !a // 运算后b=0,因为a不等于0(即为真),所以取非后等于0(为假)
c = ~a // 运算后c=5,因为a的二进制位1010,按位取反后变为0101(即等于5)
我想a应该是字符型吧?如
char
a=2
那么a=00000010
(char
单字节)
对a取反
~a=11111101
因为char是无符号型。
那么对无符号数而言,11111101即是253
注意,取反是对整个数位取反,而不是对有效数位取反。