从计组当中有了一些想法,理解了逻辑运算实际上是以二进制补码为载体的
应用二进制的思想理解,数值在内存中以二进制补码的形式存在。
正数的补码为原码,负数的补码为:符号位不变,原码取反加一。
&(按位与)——全1为1,否则为0
|(按位或)——有1为1,否则为0
^(按位异或)——相同为0,不同为1
注意a实际上未改变
#includeint main() { int a = 10; int b = a << 2; printf("a = %dnb = %dn", a, b); // 00000000000000000000000000001010--a在内存中的二进制 // (00)00000000000000000000000000101000--a左移一位产生的结果, //左移出去的0抛弃 int c=1,d=2; printf("%d %d",c&d,c|d); //00000001 //00000010 //00000000 a&b =0 //00000011 a|b =3 }



