C语言将整数输出为二进制形式?
请各位帮我看看这段把十进制整数转换为二进制的代码哪里有问题,每次运行输入11,12,13都是输出00000001,求救#include<stdio.h>
#include<conio.h>
int main()
{
int n,i,j,d=1;
printf("input");
scanf_s("%d",&n);
for(i=7;i>=1;i--)
{
for(j=1;j<=i;j++)
d=d*2;
if(n/d==0)
printf("0");
else
{
printf("1");
n=n%d;
}
}
if(n==0)
printf("0");
else
printf("1");
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
int n, i, j, d = 1;
printf("input");
scanf_s("%d", &n);
for (i = 7; i >= 1; i--)
{
for (j = 1; j <= i; j++)
d = d * 2;
if (n / d == 0)
{
printf("0");
d = 1;
}
else
{
printf("1");
n = n%d;
d = 1;
}
}
if (n == 0)
printf("0");
else
printf("1");
_getch();
return 0;
}
你的d=d*2 在一次循环结束后没重置
页:
[1]