在算法题中,常常需要用到二进制运算,这里做个总结
移位运算
<< 左移操作符
将左操作数 向左移动 右操作数 指定的位数,空出的位置补0 左移相当于乘 左移 1 位 相当于 乘 2 左移 n 位,相当于 乘 2^n
C
代码语言:javascript复制x << 1
等价于下面
x * 2
>> 右移操作符
将左操作数 向右移动 右操作数 指定的位数 右移相当于除 右移 1 位 相当于 除以 2 右移 n 位,相当于 除以 2^n, 记得要取整
C
代码语言:javascript复制x >> 1
等价于下面
x / 2 取整
与运算
与运算 判奇偶
二进制 判断 奇偶性,只需判断最后一位 是 0(偶数) 或 1(奇数)
C
代码语言:javascript复制if ((number & 1) == 1) {
// 奇数
} else {
// 偶数
}
C
代码语言:javascript复制if (number & 1) {
// 奇数
} else {
// 偶数
}
与运算 -1
C
代码语言:javascript复制num & -2
等价于下面
num - 1
参考
感谢帮助!
- C# 操作符 << 与 >>
- 用二进制位运算 来判断一个数是奇数还是偶数
本文作者: yiyun
本文链接: https://cloud.tencent.com/developer/article/1970545
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!