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

JAVA-位运算

按位与(&)

规则:对应位都为 1,结果才为 1,否则为 0。

int a = 5;  // 二进制:0101
int b = 3;  // 二进制:0011
int result = a & b; // 结果:0001,即 1
System.out.println(result); // 输出:1

按位或(|)

规则:对应位只要有一个为 1,结果为 1,否则为 0。

int a = 5;  // 二进制:0101
int b = 3;  // 二进制:0011
int result = a | b; // 结果:0111,即 7
System.out.println(result); // 输出:7

按位异或(^)

规则:对应位不同,结果为 1,相同为 0。

int a = 5;  // 二进制:0101
int b = 3;  // 二进制:0011
int result = a ^ b; // 结果:0110,即 6
System.out.println(result); // 输出:6

按位取反(~)

规则:0 变 1,1 变 0

int a = 5;  // 二进制:0000 0101
int result = ~a; // 结果:1111 1010,即 -6
System.out.println(result); // 输出:-6

左移位(<<)

规则:将数的二进制位左移指定的位数,右侧补 0。

int a = 5;  // 二进制:0000 0101
int result = a << 2; // 左移两位,结果:0001 0100,即 20
System.out.println(result); // 输出:20

右移位(>>)

规则:将数的二进制位右移指定的位数,左侧补符号位(正数补 0,负数补 1)。

int a = -20;  // 二进制表示:1111 1110 1100
int result = a >> 2; // 结果:1111 1111 1011,即 -5
System.out.println(result); // 输出:-5

无符号右移位(>>>)

规则:将数的二进制位右移指定的位数,左侧始终补 0。


int a = -20;
int result = a >>> 2; // 结果:1073741819
System.out.println(result); // 输出:1073741819

http://www.dtcms.com/a/78506.html

相关文章:

  • 【ArcGIS】ArcGIS10.8安装过程(失败记录)
  • 《线程池:Linux平台编译线程池动态库发生的死锁问题》
  • JAVA-序列化与反序列化
  • 【机器学习】模型拟合
  • 【合新通信】---RF over fiber
  • linux sh脚本关于返回字符串调试问题(adb shell)
  • MySQL 安全传输
  • GenICam标准
  • Java基于SSM的农业电商服务系统小程序【附源码、文档说明】
  • 《港口危货储存单位主要安全管理人员》考试资料及答案解析
  • 七天MySQL密集学习计划
  • Cursor解锁Claude Max,助力AI编程新突破!
  • Linux常用指令(1)
  • 记一次MyBatis分页莫名其妙的失效,首次执行合适,后续执行分页失效且异常
  • 三阴性乳腺癌化疗和PD-L1联合阻断的独特细胞机制(文献)
  • 3. 轴指令(omron 机器自动化控制器)——>MC_ImmediateStop
  • ffmpeg库硬解码使用流程
  • Java高频面试之集合-15
  • SVN简明教程——下载安装使用
  • 【数据分析】数据筛选(布尔索引:一个判断条件)
  • SAP-ABAP: 采购申请创建(PR)BAPI_PR_CREATE 技术指南-详解
  • (2025|ICLR|华南理工,任务对齐,缓解灾难性遗忘,底层模型冻结和训练早停)语言模型持续学习中的虚假遗忘
  • Spring Boot 与 Couchbase 整合教程
  • 麒麟银河V10服务器RabbitMQ安装
  • linux内核数据结构分析之链表
  • 简单几步完成dify的本地搭建
  • Qt窗口坐标体系
  • 2025年,电脑还需要分区吗?
  • QEMU源码全解析 —— 块设备虚拟化(6)
  • ospf动态路由