/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/thealgorithms/bitmanipulation/BinaryPalindromeCheck.java
43 строки
1 KB
Hardik Pawar
Add `BinaryPalindromeCheck` algorithm (#5708)
12 окт 2024, 09:36
Не верифицирован
12 окт 2024, 09:36
4d6dd13
Код
Авторство
О чём код?
package com.thealgorithms.bitmanipulation; /** * This class contains a method to check if the binary representation of a number is a palindrome. * <p> * A binary palindrome is a number whose binary representation is the same when read from left to right and right to left. * For example, the number 9 has a binary representation of 1001, which is a palindrome. * The number 10 has a binary representation of 1010, which is not a palindrome. * </p> * * @author Hardvan */ public final class BinaryPalindromeCheck { private BinaryPalindromeCheck() { } /** * Checks if the binary representation of a number is a palindrome. * * @param x The number to check. * @return True if the binary representation is a palindrome, otherwise false. */ public static boolean isBinaryPalindrome(int x) { int reversed = reverseBits(x); return x == reversed; } /** * Helper function to reverse all the bits of an integer. * * @param x The number to reverse the bits of. * @return The number with reversed bits. */ private static int reverseBits(int x) { int result = 0; while (x > 0) { result <<= 1; result |= (x & 1); x >>= 1; } return result; } }