我要做的是将整数转换为二进制并将这些值存储到数组中。到目前为止我所做的是我创建了一个for循环来获取数字范围并使用算法将这些转换为二进制。然而,这是我的问题:当我希望每个整数在一行中转换为二进制并且形式为0000 0001时,我的程序只在每一行打印1个值(0或1)。我正在努力的另一件事是存储这些值成阵列。
for(m=0;m<10000;m++)
{
const char baseDigits[2]= {'0','1'};
int convertedNumber[1000];
int numberToconvert;
int NextDigit = 0;
int base = 2;
int index = 0;
//get number and base;
numberToconvert = m;
//convert to base2
do
{
convertedNumber[index] = numberToconvert % base;
++index;
numberToconvert = numberToconvert / base;
}
while(
numberToconvert != 0
);
//display results in reverse order
for(--index;index>=0;--index)
{
NextDigit = convertedNumber[index];
printf("%c \n", baseDigits[NextDigit]);
}
}
答案 0 :(得分:0)
使用改进的for循环从printf中删除\ n,如下所示:
index--;
for(;index>=0;--index) {
NextDigit = convertedNumber[index];
printf("%c", baseDigits[NextDigit]);//you could have used %d and printed directly convertedNumber[index]
}
printf("\n");
答案 1 :(得分:0)
int i = 0;
for(--index;index>=0;--index)
{
NextDigit = convertedNumber[index];
printf("%c", baseDigits[NextDigit]);
if(index && ++i % 4 == 0)
printf("%c", ' ');
}
printf("\n");