C语言!与~的区别

  • A+
所属分类:嵌入式系统

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

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

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