二进制运算

2022-04-01 12:46:21 浏览数 (1)

在算法题中,常常需要用到二进制运算,这里做个总结

移位运算

<< 左移操作符

将左操作数 向左移动 右操作数 指定的位数,空出的位置补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 许可协议。转载请注明出处!

0 人点赞