对负数取非
首先计算机存储的是补码,对于负的数是取反加一
按字节算
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 = 0a = -10!a = 0
