二进制数以字符串方式保存,十进制数到二进制的转换是除以二,余数倒着排列
你题目的解答代码如下:
#include <stdio.h>
void dtob(char *p, int d)
{
int i, n = 0;
int v;
char c;
do
{
v = d % 2;
p[n] = v + '0';
d /= 2;
n++;
} while (d > 0);
//s中余数是倒着排列的, 要把s字符串反转一下
for (i = 0; i < n / 2; i++)
{
c = p[i];
p[i] = p[n-1-i];
p[n-1-i] = c;
};
p[n] = '\0';
}
int main()
{
int d;
char s[1000];
scanf("%d", &d);
dtob(s,d);
printf("%s\n", s);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
#include <stdio.h>
void dtob(int* p, int d)
{
int num[1024] = {-1};
int i = 0;
while (d!=0)
{
num[i] = d % 2;
d /= 2;
i++;
}
for (int j = i-1,k = 0; j >= 0; j--,k++)
{
p[k] = num[j];
printf("%d", p[k]);
}
}
int main()
{
int p[1024] = {0};
int d;
scanf("%d",&d);
dtob(p, d);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!