我正在做一个基本的程序来将数字从 10 转换为 2。我得到了这个代码:
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main()
{
int num=0, coc=0, res=0, div=0;
printf ("Write a base 10 number\n");
scanf ("%d", &num);
div=num%2;
printf ("The base 2 value is:\n");
if(div==1)
{
coc=num/2;
res=num%2;
while(coc>=1)
{
printf ("%d", res);
res=coc%2;
coc=coc/2;
}
if(coc<1)
{
printf ("1");
}
}
else
{
printf ("1");
coc=num/2;
res=num%2;
while(coc>=1)
{
printf ("%d", res);
res=coc%2;
coc=coc/2;
}
}
printf ("\n");
system ("PAUSE");
return EXIT_SUCCESS;
}
某些数字一切都很好,但是,如果我尝试将数字 11 转换为基数 2,我得到 1101,如果我尝试 56,我得到 100011...我知道这是一个逻辑问题,我仅限于基本算法和功能:(... 有任何想法吗?