发布网友 发布时间:2022-04-21 03:34
共5个回答
热心网友 时间:2022-05-18 00:29
#include "stdio.h"
int main()
{
int n;
int i=0,j;
char str[100]={0};
char output[100]={0};
printf("请输入一个整数:");
scanf("%d",&n);
while(n)
{
str[i]=n%2+'0';
n=n/2;
i++;
}
for(j=0;j<i;j++)
output[j]=str[i-1-j];
printf("该整数的二进制表示为:%s\n",output);
}
热心网友 时间:2022-05-18 01:47
十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(int value,char*string,int radix);
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
参考代码:
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i=10;
char a[100];
itoa(i,a,2);
printf("%s\n",a);
return 0;
}
/*
1010
*/
热心网友 时间:2022-05-18 03:22
代码如下,算得挺准的:
#include<stdio.h>
int main(void){
int n,i,c=0,s[25];
scanf("%d",&n);
for(i=n;i;i-=1){
s[c]=i%2;
c+=1;
}
for(c-=1;c>0;c-=1){
printf("%d",&s[c]);
}
return 0;
}
热心网友 时间:2022-05-18 05:13
#include<stdio.h>
int main()
{
int n,a[1000]={0},j;
scanf("%d",&n);
for(int i=0;n;i++)
{
a[i]=n%2;
n/=2;
j=i;
}
for(j;j>=0;--j)
printf("%d",a[j]);
printf("\n");
return 0;
}
热心网友 时间:2022-05-18 07:21
输出的时候把格式符改下不就行了么-_-#