私はこのコードを持っています:
#include <stdio.h>
#include <string.h>
int main(void)
{
long long int n,b,t,j;
while(scanf("%llu",&n) && n)
{
char a[2000]={0},c[2000]={0};
b=0;
int k=0;
while(n>0)
{
a[b++]=(n%2)+48;
if(n%2==1)
k++;
n=n/2;
}
a[b]='\0';
j=strlen(a)-1;
for(b=j,t=0;b>=0;b--)
c[t++]=a[b];
c[t]='\0';
printf("The parity of %s is %d (mod 2).\n",c,k);
}
return 0;
}
このコードは完璧に機能します。
Cでユニオンを使用して10進数を2進数に変換したい
どうやってやるの?