对负数取非
首先计算机存储的是补码,对于负的数是取反加一
按字节算
5 00001001
取反 11110110
加一 11110111
然后进行非运算就是再取反得00001000,也就是4
注意:在C语言中对-1的非是0,并不是正数
#include <stdio.h>
int main()
{
/*
* 注意:在C语言中对-1的非是0,并不是正数,C语言对非零数取非都是0
*/
int a = -1;
printf("a = %d\n", a);
printf("!a = %d\n", !a);
a = -10;
printf("a = %d\n", a);
printf("!a = %d\n", !a);
return 0;
}
a = -1
!a = 0
a = -10
!a = 0