SORU: Kendisine gönderilen sayının n. bitini 0 yapıp bu değerle geri dönen fonksiyonu yazınız. (Diğer bitler değişmeyecek)

/*Kendisine gönderilen sayının n. bitini 0 yapıp bu değerle geri dönen fonksiyonu
yazınız. (Diğer bitler değişmeyecek)*/
#include<stdio.h>
int bitclear(int num,int n);
void bitprint(int a);
int main()
{
int a,n,b;
printf("bir sayi giriniz\n");
scanf("%d",&a);
printf("girilen sayinin 32 bit gösterimi:\n");
bitprint(a);
printf("kacinci bitini 0 yapmak istiyorsunuz\n");
scanf("%d",&n);
b=bitclear(a,n);

printf("%d. biti 0 yapildiktan sonra sayi:%d\n",n,b);
bitprint(b);
scanf(" ");
return 0;
}
int bitclear(int num,int n)
{
return num&(-1^1<<n-1);
}
void bitprint(int a)
{
int i;
for(i=31;i>=0;i--)
{
if(a&1<<i)
printf("1");
else
printf("0");
if(i%8==0)
printf(" ");
}
printf("\n");
}

 

 

Yorum yapın
  • Henüz hiç yorum yok