当前位置: 首页 > article >正文

位运算符说明

1,按位与 (&)

按位与运算符比较两个操作数的每一位,只有当两个相应的位都为 1 时,结果的相应位才为 1,否则为 0。以下是按位与的真值表:
假设我们有两个字节,它们的二进制表示如下:

A:  0110 1100
B:  0101 0111
A & B: 0100 0100 (即十进制的 68)

按位或 (|)

按位或运算符比较两个操作数的每一位,只要两个相应的位中至少有一个为 1,那么结果的相应位就为 1;如果两个相应的位都为 0,则结果的相应位为 0。以下是按位或的真值表:

A:  0110 1100
B: 0101 0111
A | B: 0111 1111 (即十进制的 127)

按位异或 (^)

按位异或运算符比较两个操作数的每一位,如果两个相应的位不同,则结果为 1;如果相同,则结果为 0。以下是按位异或的真值表:

A:  0110 1100
B:  0101 0111
A ^ B: 0011 1011 (即十进制的 59)

按位取反 (~)

按位取反运算符将每个位翻转,即 0 变为 1,1 变为 0。它只作用于一个操作数。

A:  0110 1100
~A: 1001 0011 (即十进制的 -109, 注意符号位的影响)

左移 (<<)

左移运算符将操作数的位向左移动指定的数量,右边空出的位置用 0 填充。左边溢出的位会被丢弃。

字节 A: 0000 0001 (即十进制的 1)
A << 3: 0000 1000 (即十进制的 8)

右移 (>>)

右移运算符将操作数的位向右移动指定的数量。对于无符号类型,左边空出的位置用 0 填充;对于有符号类型,左边空出的位置用符号位(最高位)填充,以保持数值的符号不变。

(0000 1000) >> 3: 0000 0001 (即十进制的 1)

http://www.kler.cn/a/443446.html

相关文章:

  • LWIP协议:三次握手和四次挥手、TCP/IP模型
  • 解释工厂模式
  • uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件
  • CentOS 7.9 ISO 镜像下载
  • 大数据:开启智能时代的钥匙
  • RK3568平台(Kbuild篇)vmlinux 编译过程
  • Golang学习笔记_14——切片
  • Docker 镜像加速和配置的分享 云服务器搭建beef-xss
  • Kubernetes中subPath
  • Android笔记【20】
  • 36.3 grafana-dashboard看图分析
  • 【C++】inline函数(内联函数)
  • 录音有杂音怎么消除?去杂音降噪音的方法
  • 自动驾驶AVM环视算法--python版本的540投影模式
  • C++ Learning explicit关键字•静态成员
  • 机器人阻抗和导纳控制的区别
  • Azure虚拟机非托管磁盘大小调整
  • 三相异步电动机噪音大有哪些原因?
  • Java线程池解读
  • 东方博宜24年12月-B组(才俊)- 重铠马的选择