来源:于95-费解的开关
1.当我们想看一串二进制数(i)的某一位(k)是否为1,可以采用表达式i>>k & 1;
2.当我们想将二进制数最后一位改变时,可采用表达式i^1
知识点:
位运算(>>):用于将二进制数向右移动指定的位数,右移运算符将二进制数的 所有位向右移动 n 位,右移过程中,最右边的 n 位将被丢弃,而左边用 0 填充。右移运算相当于将二进制数除以 2 的 n 次方(向下取整)。
列如: 0000 1010 >> 1 = 0000 0101
而左移运算其实就是往右边添0
列如: 0000 0101 << 2 = 0001 0100
按位运算符(&):按位与运算符将两个二进制数的对应位进行与操作,结果的每一位 取决于两个操作数对应位的值。只有当两个操作数的对应位都为 1 时,结果的对应位才为 1;否则,结果的对应位为 0。
列如:0000 1010 & 0000 0101 = 0000 0000
异或运算(^):异或运算符将两个二进制数的对应位进行异或操作,结果的每一位 取决于两个操作数对应位的值。当两个操作数的对应位不同时,结 果的对应位为1;当两个操作数的对应位相同时,结果的对应位为。
列如:0000 1010 ^ 0000 0101 = 0000 1111