C语言!与~的区别

! :逻辑取反,凡是值不为0的,! 就等于0; 如果值为0,则 ! 的值为1
~ :按位取反, 即那些为0的位,结果是1,而那些为1的位,结果是0。

int a=2 ;           // 用二进制表示为0b00 00 00 10;
!a = 0;             //逻辑取反
~a = 0b11 11 11 01  //按位取反

所以在做判断条件时,一定要用!(逻辑取反),以免出错!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: