以下c程序是转换为二进制然后从低位到高位输出,怎么从低位到高位输出啊?
发布网友
发布时间:2022-05-21 10:41
我来回答
共4个回答
热心网友
时间:2023-10-23 13:13
可以用递归方法实现:#include "stdio.h"
void printn(int n)
{
int a;
if((a = n / 2) > 0)
printn(a);
printf("%d", n % 2);}void main()
{
int n;
printf("n=");
scanf("%d",&n);
printf("对应的二进制数是:");
printn(n);
printf("\n");
}
热心网友
时间:2023-10-23 13:14
#include "stdio.h"
void main()
{
int n,i=0,j;int a[80];
printf("n=");
scanf("%d",&n);
printf("对应的二进制数是:");
while(n!=0)
{a[i++]=n%2;n=n/2;
}for(;i>=0;i--)printf("%d",a[i]);
printf("\n");
}
热心网友
时间:2023-10-23 13:14
我以前写过的一个代码,无差别二进制输出:
#include <stdio.h>
void dto2(void* num, int n)
{
typedef unsigned char *pbyte;
int i;
pbyte p = (pbyte)num + n - 1;
while(p >= (pbyte)num) {
for(i = 7; i >= 0; --i)
putchar(*p & (1 << i) ? '1' : '0');
putchar(' ');
--p;
}
putchar('\n');
}
#define C(a) dto2(&a, sizeof(a))
int main()
{
int a = 10;
double b = 123.456;
float c = 3;
char d = 'A';
C(a);C(b);C(c);C(d);
getchar();
return 0;
}
热心网友
时间:2023-10-23 13:15
#include "stdio.h"
#include <math.h>
void main()
{
int n,i=0,m=0;
printf("n=");
scanf("%d",&n);
printf("对应的二进制数是:");
while(n!=0)
{
m=m+n%2*(int)pow(10,i);
i++;
n=n/2;
}
printf("%d\n",m);
}