位运算总结:
按位与& 如果相对应位都是1,则结果为1,否则为0
按位或 | 如果相对应位都是 0,则结果为 0,否则为 1
按位异或^ 如果相对应位值相同,则结果为0,否则为1
int a = 60; /* 60 = 0011 1100 */
算数左移c = a << 2; /* 240 = 1111 0000 */ a的二进制向左移动两位
算数右移c = a >> 2; /* 15 = 1111 */ a的二进制向右移动两位
逻辑右移c = a >>> 2; /* 15 = 0000 1111 */ a的二进制向右移动两位后,凑齐8个位数 其余补0
题目:
Day10:136只出现一次的数字
Day15:191位1的个数
Day19:231 2 的幂
Day27:461汉明距离
Day54:389找不同
Day65:693交替位二进制数