随笔 - 33, 文章 - 0, 评论 - 0, 阅读 - 13644

了解位运算

Posted on   疯狂搬砖人  阅读(47)  评论(0编辑  收藏  举报

1.与(&)运算符

使用规则:两个二进制操作数对应位同为1 结果位 才为1,其余情况为0;

  3 => 0000 0000 0000 0011

  5 => 0000 0000 0000 0101

  &      0000 0000 0000 0001 转换成十进制也就是1

2.或(|)运算符

使用规则:两个二进制操作数对应位只要有一个为1 结果位 就为1,其余情况为0;

  3 => 0000 0000 0000 0011

  5 => 0000 0000 0000 0101

  |       0000 0000 0000 0111 转换成十进制也就是7

3.取反(~)运算符

使用规则:一个二进制操作数,对应位为0,结果位为1;对应位为1,结果位为0;

  6 => 0000 0000 0000 0110

  ~      1111 1111 1111 1010 转换成十进制也就是-7

4.异或(^)运算符

使用规则:两个二进制操作数对应位相同为0,不同为1;

  3 => 0000 0000 0000 0011

  5 => 0000 0000 0000 0101

  ^      0000 0000 0000 0110 转换成十进制也就是6

5.同或(~)运算符

将参加运算的两个数据,按二进制位进行"同或"运算。相同为1,不同为0;

  3 => 0000 0000 0000 0011

  5 => 0000 0000 0000 0101

          1111 1111 1111 0001 转换成十进制也就是-7

6.左移(<<)运算符

<< : 在一定范围内,每向左移 1 位,就相当于 * 2;

  举例: 3 << 5

  3 => 0000 0000 0000 0011

  << 0000 0000 0110 0000 转换成十进制也就是 96 = 3 * (2^5) (这里的^代表几次方 不是异或)

  面试题:最高效的计算 2 * 8?

  2 << 3 /或8 << 1

7.右移(>>)运算符

>> : 在一定范围内,每向右移 1 位,就相当于 / 2;

  举例: 96 >> 5

  96 => 0000 0000 0110 0000

  <<      0000 0000 0000 0011  转换成十进制也就是 3 = 96  /  (2^5)

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示