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);
    }
}
相关推荐
小毅&Nora19 小时前
【Java线程安全实战】② ConcurrentHashMap 源码深度拆解:如何做到高性能并发?
java·安全·多线程
Knight_AL19 小时前
阿里《Java 开发手册》下的对象构建与赋值规范实践
java·开发语言
DuHz19 小时前
242-267 GHz双基地超外差雷达系统:面向精密太赫兹传感与成像的65nm CMOS实现——论文阅读
论文阅读·物联网·算法·信息与通信·毫米波雷达
步步为营DotNet19 小时前
深入理解.NET 中的IHostedService:后台任务管理的基石
java·网络·.net
报错小能手19 小时前
数据结构 字典树
开发语言·数据结构
XLYcmy19 小时前
高级密码生成器程序详解:专门设计用于生成基于用户个人信息的密码猜测组合
开发语言·数据结构·python·网络安全·数据安全·源代码·口令安全
AI科技星19 小时前
时空的固有脉动:波动方程 ∇²L = (1/c²) ∂²L/∂t² 的第一性原理推导、诠释与验证
数据结构·人工智能·算法·机器学习·重构
独自破碎E19 小时前
Leetcode862和至少为K的最短子数组
java·开发语言
To Be Clean Coder19 小时前
【Spring源码】getBean源码实战(二)
java·后端·spring
2401_8414956420 小时前
【LeetCode刷题】寻找重复数
数据结构·python·算法·leetcode·链表·数组·重复数