Q:
C program to check whether a given number is palindrome or not using Bitwise Operator
belongs to collection: C solved programs/examples on Bitwise Operators
C solved programs/examples on Bitwise Operators
- C program to find Binary number of a Decimal number
- C program to demonstrate example of left shift (<<) operator
- C program to swap two nibbles of a byte.
- C program to counter number of 1\'s in an integer number.
- C program to reverse bits of an integer number.
- C program to swap two words/bytes.
- C program to check whether all bits of a number are UNSET/LOW?
- C program to swap two bits of a byte
- C program to get minimum number of bits to store an integer number
- C program to demonstrate example of right shift (>>) operator
- C program to set/clear (high/low) bits of a number
- C program to swap two numbers using bitwise XOR operator
- C program to Count the Number of Trailing Zeroes in an Integer
- C program to find the Highest Bit Set for any given Integer
- C program to check if all the bits of a given integer is one (1)
- C program to count number of bits set to 1 in an Integer
- C program to check whether a given number is palindrome or not using Bitwise Operator
- C program to find odd or even number using bitmasking
- C program to replace bit in an integer at a specified position from another integer
- C program to swap two Integers using Bitwise Operators
- C program to Check if nth Bit in a 32-bit Integer is set or not
- C program to check a number contain the alternative pattern of bits
- C program to find the next number power of 2
- C program to find the position of MSB bit of an unsigned integer number
- C program to round off an integer number to the next lower multiple of 2
- C program to print the range of fundamental data types using bitwise operators
- C program to count the number of leading zeros in a binary number
- C program to read a byte and print bits between given positions
- C program to swap two bits of a 32-bit integer number
- C program to check a given number is the power of 2 using bitwise operator
- C program to count the number of bits to be flipped to convert a number to another number
- C program to print bits that need to be flipped to convert a number to another number

C programming
Pre-requisite: Input number n
Input Example:
Input number: 24 Binary representation: 00011000 Thus it's a palindrome Input number 153: Binary representation: 10011001 Thus it's a palindrome Input number: 25 Binary representation: 00011001 Thus it's not a palindromeAlgorithm:
1) Take the input. 2) Create an array of length 8 to store 8 bit binary representation of input number 3) Use bitwise operators to convert into binary from a) Initialize i to 7 (8-1) b) Find ith bit & store in the array array[i]=n & 1 c) Right shift n & decrement i n=n>>1 d) IF n=0 Break ELSE Repeat step b-d 4) Check the array where the binary representation is stored, for palindrome a) Set j= 0 & k=7 (8-1, 8 is the MAX SIZE) b) IF (array [j]!= array [k]) It's not a palindrome c) IF j < k Increment j& decrement k Repeat b, c ELSE It's a palindromeExample with explanation:
Input no: 24 Converting to binary representation using bitwise operator Initially, N=24 Array[8]={0}; 0 0 0 0 0 0 0 0 (LSB) i=7 ----------------------------------------------------------------- first iteration, array[7]=n&1 = 0 (refer to bitwise operators and their working for understanding the outcome) 0 0 0 0 0 0 0 0 (current bit) n=n>>1=12 i=6 ----------------------------------------------------------------- second iteration, array [6]=n&1 = 0 0 0 0 0 0 0 0 (current bit) 0 n=n>>1=6 i=5 ----------------------------------------------------------------- third iteration, array [5]=n&1 = 0 0 0 0 0 0 0 (current bit) 0 0 n=n>>1=3 i=4 ----------------------------------------------------------------- fourth iteration, array [4]=n&1 = 1 0 0 0 0 1(current bit) 0 0 0 n=n>>1=1 i=3 ----------------------------------------------------------------- fifth iteration, array [3]=n&1 = 1 0 0 0 1 (current bit) 1 0 0 0 n=n>>1=0 i=2 ----------------------------------------------------------------- sixth iteration, n=0 so no more processing thus the array finally becomes which is the binary representation 0 0 0 1 1 0 0 0 (LSB) Checking palindrome Initially, j=0 & k=7 (8-1) ----------------------------------------------------------------- First iteration Array[j] == array [k] (both 0) j=j+1=1 k=k-1=6 j<k ----------------------------------------------------------------- Second iteration Array[j] == array [k] (both 0) j=j+1=2 k=k-1=5 j<k ----------------------------------------------------------------- Third iteration Array[j] == array [k] (both 0) j=j+1=3 k=k-1=4 j<k ----------------------------------------------------------------- Fourth iteration Array[j] == array [k] (both 1) j=j+1=4 k=k-1=3 j>k thus, stops processing & prints it's a palindromeC Implementation
Output
need an explanation for this answer? contact us directly to get an explanation for this answer