Để kiểm tra palindrome, giả sử số của chúng ta là 5, có số nhị phân là -
101
palindrome của 101 là 101 và để kiểm tra, bạn cần đảo ngược các bit bằng cách sử dụng hàm sau. Ở đây, các toán tử dịch chuyển trái và phải theo chiều dọc theo bit được sử dụng -
public static long funcReverse(long num) { long myRev = 0; while (num > 0) { myRev <<= 1; if ((num & 1) == 1) myRev ^= 1; num >>= 1; } return myRev; }
Sau đó, biểu diễn thực tế sẽ được so sánh với biểu diễn ngược lại bằng cách trả về và nhận giá trị từ hàm funcReverse () -
public static bool checkPalindrome(long num) { long myRev = funcReverse(num); return (num == myRev); }
Ví dụ
Sau đây là ví dụ hoàn chỉnh để kiểm tra xem biểu diễn nhị phân của một số có phải là palindrome hay không -
using System; public class Demo { public static long funcReverse(long num) { long myRev = 0; while (num > 0) { myRev <<= 1; if ((num & 1) == 1) myRev ^= 1; num >>= 1; } return myRev; } public static bool checkPalindrome(long num) { long myRev = funcReverse(num); return (num == myRev); } public static void Main() { // Binary value of 5 us 101 long num = 5; if (checkPalindrome(num)) Console.WriteLine("Palindrome Number"); else Console.WriteLine("Not a Palindrome Number"); } }
Đầu ra
Palindrome Number