为班级做家庭作业,部分作业让我们从以十为底的转换为二进制,并将二进制数表示为 char 类型的数组。由于某种原因,它没有计算最正确的位。任何帮助,将不胜感激。
#include <stdlib.h>
#include <stdio.h>
xtractmsg(int a)
{
int rem,i,b,j,quotient;
char binaryNumber[16];
for(i = 0; i <= 16; i++){
if(a == 0)
binaryNumber[i]='0';
else{
rem = a % 2;
if(rem == 0)
binaryNumber[i]='1';
else
binaryNumber[i]='0';
a=a/2;
}
}
for(j=15; j>=0;j--)
printf("%c,%d",binaryNumber[j]);
}
输入为 10,输出为 0000000000000101。