56. 数组中只出现一次的数字

目录

与运算(AND):

或运算(OR):

异或运算(XOR):


java 复制代码
public class UniqueNumberFinderBitwise {
    public static int findUniqueNumber(int[] nums) {
        int uniqueNum = 0;

        // 使用异或运算找出只出现一次的数字
        for (int num : nums) {
            uniqueNum ^= num;
        }

        return uniqueNum;
    }

    public static void main(String[] args) {
        int[] nums = {2, 3, 2, 3, 4};
        System.out.println(findUniqueNumber(nums));  // 输出: 4
    }
}

在Java编程语言中,位运算涉及对整数的二进制表示直接进行操作。以下是与(AND)、或(OR)以及异或(XOR)三种基本的位运算符及其对应的符号:

与运算(AND):

  • 运算符:&
  • 示例:5 & 3
  • 运算规则:对两个数的二进制形式逐位进行与操作,仅当两个对应位都为1时,结果位才为1,否则为0。

或运算(OR):

  • 运算符:|
  • 示例:5 | 3
  • 运算规则:对两个数的二进制形式逐位进行或操作,只要两个对应位中有一个为1,结果位就为1,否则为0。

异或运算(XOR):

  • 运算符:^
  • 示例:5 ^ 3
  • 运算规则:对两个数的二进制形式逐位进行异或操作,当两个对应位不同时,结果位为1,相同时为0。

下面是这三个运算符的简单示例代码:

java 复制代码
public class BitwiseOperations {
    public static void main(String[] args) {
        int a = 5; // 二进制表示为 0101
        int b = 3; // 二进制表示为 0011

        // 与运算
        int andResult = a & b; // 结果为 0001,即十进制的 1
        System.out.println("a & b = " + andResult);

        // 或运算
        int orResult = a | b; // 结果为 0111,即十进制的 7
        System.out.println("a | b = " + orResult);

        // 异或运算
        int xorResult = a ^ b; // 结果为 0110,即十进制的 6
        System.out.println("a ^ b = " + xorResult);
    }
}
相关推荐
鶴哥只手遮天4 分钟前
Spring AI 2.0.1 深度解析-第 05 章 Advisor 架构:接口体系、栈式链与 context 传播
java·人工智能·开源
鶴哥只手遮天6 分钟前
Spring AI 2.0.1 深度解析-第 04 章 `ChatClient` 全流程:Builder、两条链路与结构化输出
java·人工智能·开源
鶴哥只手遮天6 分钟前
Spring AI 2.0.1 深度解析-第 08 章 RAG 组件逐个拆解:实现细节与八个可投产组件
java·人工智能·开源
SL_staff1 小时前
告别报表重复开发:JVS-BI 模板市场的参数化继承实践
java·数据分析·数据可视化
SL_staff2 小时前
从邮箱传文档到协同流重构:企业文档协作的系统性破局实践
java·开源·github
zyl7654 小时前
FlashAttention 详解:从 GPU 硬件、普通 Attention 到分块计算与 Online Softmax
算法
smallyoung4 小时前
告别N+1:Spring Boot 一键数据翻译框架体系
java·后端·架构
Bazingga6 小时前
Java16 record 完整拆解——语法、语义、限制、反射
java·后端
SL_staff7 小时前
规则联动:给工厂装上‘自动化神经反射弧’——JVS·物联网平台规则引擎实战教程
java·人工智能·物联网
骑着蜗牛撵大象3277 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信