Bitwise Operators: & ^ | ~ << >>
printf("a=%d\n", a);
printf("a=%o\n", a);
printf("a=%x\n", a);
#include <stdio.h>
void display_bits (int a);
int main()
{
int a = 15;
display_bits(a);
return 0;
}
void display_bits (int a)
{
int mask;
int i;
for(i=32;i>=1;i--)
{
if(i%8==0)
{
printf(" ");
}
mask = 1<<(i-1);
if((a&mask) == 0)
{
printf("0");
}
else
{
printf("1");
}
}
}
//read a bit or check a bit
#include <stdio.h>
int main()
{
int a=8;
int mask;
int r;
int pos=4;
mask=1<<(pos-1);
//4th bit read
r=a&mask;
if(r==0)
{
printf("%d bit is 0\n",pos);
}
else
{
printf("%d bit is 1\n", pos);
}
return 0;
}
#include <stdio.h>
int main()
{
int a=5;
int mask;
int r;
int pos=2;
mask=1<<(pos-1);
//set a bit
a=a|mask;
printf("a is %d\n", a);
return 0;
}
#include <stdio.h>
int main()
{
int a=5;
int mask;
int r;
int pos=3;
mask=1<<(pos-1);
//reset a bit
a=a&~mask;
printf("a is %d\n", a);
return 0;
}
#include <stdio.h>
int main()
{
int a=5;
int mask;
int r;
int pos=3;
mask=1<<(pos-1);
//toggle a bit
a=a^mask;
printf("a is %d\n", a);
return 0;
}