1
int a = -15, b = 15;
printf("%d %d\n", a >> 2, b >> 2);
因为15=0000 1111(二进制),右移二位,最高位由符号位填充将得到0000 0011即3。-15 = 1111 0001(二进制),右移二位,最高位由符号位填充将得到1111 1100即-4
2
a<<2;
/*
a左移2位且无数据溢出=a*4
(若1001左移两位变为0100则为数据溢出)
右移则是 /2^n
*/
3
a ^= b;
b ^= a;
a ^= b;
//a,b互换值
4
i&1
//通过最后一位判断是否为奇数