You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中'^='位运算符的含义是什么?

Java中^=运算符详解

^=是Java里的复合赋值运算符,它把位异或(或逻辑异或)运算和赋值操作结合在一起,等价于 变量 = 变量 ^ 操作数,写法更简洁,且变量只会被求值一次。

1. 针对整数类型:位异或赋值

对于byte、short、int、long这类整数类型,^是位异或运算符,规则是:两个二进制位相同则结果为0,不同则为1。^=就是将变量的二进制值与右侧操作数的二进制值逐位异或,再把结果赋值回变量。

举个具体例子:

int num = 5;    // 二进制表示:0101
num ^= 3;       // 3的二进制是0011,逐位异或后得到0110(即十进制6)
System.out.println(num); // 输出:6

逐位计算过程:

0101
^ 0011
------
  0110

2. 针对布尔类型:逻辑异或赋值

对于boolean类型,^是逻辑异或运算符,规则是:两个布尔值不同时结果为true,相同时为false。^=就是将变量的布尔值与右侧操作数的布尔值做逻辑异或,结果赋值回变量。

例子:

boolean isEnabled = true;
isEnabled ^= false; // true ^ false = true,isEnabled保持true
isEnabled ^= true;  // true ^ true = false,isEnabled变为false
System.out.println(isEnabled); // 输出:false

常见实用场景

利用位异或的特性,^=可以用来交换两个整数变量的值(无需临时变量):

int a = 15, b = 25;
a ^= b; // a = 15 ^ 25
b ^= a; // b = 25 ^ (15 ^ 25) = 15
a ^= b; // a = (15 ^ 25) ^ 15 = 25
// 此时a=25,b=15

内容的提问来源于stack exchange,提问作者Cristian Marinescu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:31:14