#include <stdio.h>
#include <string.h>
#include <stdbool.h>
void toBinary(unsigned int number, char binaryNumber[]) {
int i = 0;
while (number != 0) {
binaryNumber[i] = (number % 2) + '0';
i++;
number /= 2;
}
_strrev(binaryNumber);
}
int isBinaryRepresentationOfNumberPalindrome(unsigned int number) {
char binaryNumber[17] = "";
toBinary(number, binaryNumber);
char revBinaryNumber[17] = "";
strcpy(revBinaryNumber, binaryNumber);
_strrev(revBinaryNumber);
return strcmp(binaryNumber, revBinaryNumber) == 0;
}
int main()
{
unsigned int num = 153; // 10011001
if (isBinaryRepresentationOfNumberPalindrome(num)) {
printf("Palindrome\n");
}
else {
printf("Not Palindrome\n");
}
return 0;
}
/*
run:
Palindrome
*/