首页  > 教育解读  > 判断二进制是否是回文数java

判断二进制是否是回文数java

2025-05-03 08:54:36
花开花落
花开花落已认证

花开花落为您分享以下优质知识

要判断一个整数的二进制表示是否是回文数,可以通过以下步骤实现:

1. 将整数转换为二进制字符串;

2. 检查该字符串是否是回文。

以下是实现该功能的Java代码示例:

```java

import java.util.Scanner;

public class BinaryPalindromeChecker {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("请输入一个正整数: ");

int num = scanner.nextInt();

scanner.close();

String binaryStr = Integer.toBinaryString(num);

boolean isPalindrome = isPalindrome(binaryStr);

if (isPalindrome) {

System.out.println("二进制表示是回文数");

} else {

System.out.println("二进制表示不是回文数");

}

}

public static boolean isPalindrome(String str) {

int left = 0;

int right = str.length() - 1;

while (left < right) {

if (str.charAt(left) != str.charAt(right)) {

return false;

}

left++;

right--;

}

return true;

}

}

```

代码说明:

输入处理:

使用 `Scanner` 读取用户输入的正整数。

二进制转换:

使用 `Integer.toBinaryString(num)` 将整数转换为二进制字符串。

回文判断:

通过双指针法检查二进制字符串是否是回文。定义两个指针 `left` 和 `right`,分别从字符串的开头和结尾向中间移动,比较对应位置的字符是否相同。如果所有对应字符都相同,则该字符串是回文。

示例运行:

```

请输入一个正整数: 9

二进制表示是回文数

```

其他方法:

不使用字符串反转:可以通过数学方法逐位比较,例如:

```java

public static boolean isPalindrome(int num) {

int originalNum = num;

int reversedNum = 0;

while (num != 0) {

int digit = num % 10;

reversedNum = reversedNum * 2 + digit;

num /= 10;

}

return originalNum == reversedNum;

}

```

这种方法避免了字符串操作,直接通过数学运算判断回文性。

以上方法均可实现二进制回文数的判断,选择哪种方式取决于具体需求和偏好。