Java中的位运算 | AI生成和翻译

Home 2025.02

位运算利用位操作符高效解决问题。让我们探讨如何找出单一数字以及判断一个数是否为2的幂。

1. 单一数字:异或运算的妙用

在数组中所有其他数字都出现两次的情况下,使用异或运算找出唯一不重复的数字。

Java 实现

public class SingleNumber {
    public static int singleNumber(int[] nums) {
        int result = 0;
        for (int num : nums) result ^= num;
        return result;
    }

    public static void main(String[] args) {
        int[] nums = {2, 2, 1, 1, 4};
        System.out.println("单一数字: " + singleNumber(nums));
    }
}

输出: 单一数字: 4

2. 2的幂次:位校验

如果一个数的二进制表示中恰好只有一个1位,则该数是2的幂。

Java 实现

public class PowerOfTwo {
    public static boolean isPowerOfTwo(int n) {
        return n > 0 && (n & (n - 1)) == 0;
    }

    public static void main(String[] args) {
        int n = 16;
        System.out.println(n + " 是2的幂: " + isPowerOfTwo(n));
        n = 18;
        System.out.println(n + " 是2的幂: " + isPowerOfTwo(n));
    }
}

输出:

16 是2的幂: true
18 是2的幂: false

跨博客总结

每个类别都有其独特优势——根据具体问题选择合适工具,并尝试这些实现!如需深入了解任何类别或需要更多算法,请随时告知。


Back Donate