Wednesday, January 1, 2014

Bit Operations

Useful C Programs
1> Bit Operations
          Set , Clear, Check bit.

#include<stdio.h>.
void showbit(int);
int setbit(int,int);
int clearbit(int,int);
int rtshift(int,int);
int lfshift(int,int);
int checkbit(int,int);
int dectohex(int);
int bintohex(int);
int main()
{
    int a,b,value;
    value =(10);
    printf("%d:\n",value);
    showbit(value);
    a = rtshift(value ,2);
    printf("%d:\n",a);
    showbit(a);
    b = lfshift(value ,2);
    printf("%d:\n",b);
    showbit(b);
    checkbit(value,1)? printf("Bit Set"):printf("Bit Clear");
    return 0;
}
void showbit(int a)
{
    int i,d=0;
    for(i=31;i>=0;i--)
    {
     if(!(a &(1<<i)))
     {
      printf("0");
      d++;
     }
      else
     {
      printf("1");
      d++;
     }
     if (d == 4)
     {
     printf(" ");
     d=0;
     }
    }
 printf("\n");

//Simpler way for above
//!(a &(1<<i))?printf("0"):printf("1");
}
int rtshift(int val,int rtshft)
{
return (val>>rtshft);
}
int lfshift(int val,int lfshft)
{
return (val<<lfshft);
}

int setbit(int val,int pos)
{
    return (val|(1<<pos));
}
int clearbit(int val,int pos)
{
    return (val&=~(1 << (pos-1)));
}
int checkbit(int val,int pos)
{
    return (val & (1<<pos));
}

No comments:

Post a Comment