Thursday, May 1, 2014

Program to find binary value using bitwise operator in C!!!


/*************************************************
* This program finds the binary value of the given integer value
* Used bitwise operators to find binary value 
* Below is the logic to find binary value
* 1. Need to skip right most 0'1 until 1 comes 
* 2. After that, do AND operation with MASK value  print 1 on true else 0
* 3. Shift one bit left
* 4. Repeat step 2 Until Int size completes
*
*
* Int size is generally 4 bytes which is 32 bits
* MASK value for Int is in hexa (0x80000000)
* Above mask value is taken, because we need to mask Most significant bit (31st bit)
*
*************************************************/

#define INT_SIZE 32
#define MASK  (0x80000000) 
#include<stdio.h>
void findBinary(int num)
{
 int pos;
 int i=0;
 int flag = 0;
 
 //finding location from right side
 //so that we can ignore zeros
 //e.g: 0000100 same as 100, ignore 0000
 // ANDing 
 for(i=0;i<INT_SIZE;i++)
 {
  if(((num<<i) & MASK))
  {
   if(!flag)
   {
    pos = i;
    break;
   }
  }
 }
 printf("\nBinary value is ");
 for(i=pos;i<INT_SIZE;i++)
 {
  if(((num<<i) & MASK))
   printf("1");
  else
   printf("0");
 }
 printf("\n");

}
int main()
{
 int x = 0;
 printf("Enter input value\n");
 scanf("%d",&x);
 findBinary(x);
}
OutPut:
Enter input value
256
Binary value is 100000000

Enter input value
234
Binary value is 11101010

Happy Coding!!!

No comments:

Popular Posts