Bits
#include<stdio.h>
int count(int n) //counting bits
{
int count=0;
while(n)
{
n=n>>1;
count++;
}
return count;
}
int count1(int n) //counting 1 bits
{
int count=0;
while(n)
{
if(n&1)
count++;
n=n>>1;
}
return count;
}
int count0(int n) //counting 0 bits
{
return count(n)-count1(n);
}
int set_xth_bit(int n, int x)
{
int nr=1<<(x-1);
n=n|nr;
return n;
}
int unset_xth_bit(int n, int x)
{
int nr=1<<(x-1);
nr=~nr;
n=n&nr;
return n;
}
int change_xth_bit(int n, int x)
{
int nr=1<<(x-1);
n=n^nr;
return n;
}
int main() {
int n=0b10001;
printf("initial number=%d\n",n);
printf("total number of bits:%d\n",count(n));
printf("total number of 1:%d\n",count1(n));
printf("total number of 0:%d\n",count0(n));
n=set_xth_bit(n,4);
printf("bit 4 set:%d\n",n);
n=unset_xth_bit(n,4);
printf("bit 4 unset:%d\n",n);
n=change_xth_bit(n,4);
printf("bit 4 changed:%d\n",n);
}