如题所述
第1个回答 2020-01-16
#include
<stdio.h>
void
main()
{
int
a;
scanf(\"%d\",&a);//输入一个10进制数。
int
result=0;//存储a的二进制结果。
int
p=1;//p=1表示个位数
do
{
int
b=a%2;//b是余数,第一个余数是二进制的个位。
result=result+p*b;
p=p*10;//*10表示下个是10位数。
a=a/2;
}while(a);
printf(\"\\n%d\\n\",result);
}
还是可以用的
<stdio.h>
void
main()
{
int
a;
scanf(\"%d\",&a);//输入一个10进制数。
int
result=0;//存储a的二进制结果。
int
p=1;//p=1表示个位数
do
{
int
b=a%2;//b是余数,第一个余数是二进制的个位。
result=result+p*b;
p=p*10;//*10表示下个是10位数。
a=a/2;
}while(a);
printf(\"\\n%d\\n\",result);
}
还是可以用的
第2个回答 2020-01-17
#include
<stdio.h>
void
trans(int
x)
{
int
a[30];//1亿好像才29位的二进制,一般不用算
//这么大的数了吧~~
int
i=0,rem;
do{
rem=x%2;x=x/2;
a[i]=rem;
i++;
}while(x!=0);
while(i>0)
printf("%d",a[--i]);
printf("\n");//倒输出正确顺序的数~
}
void
main()
{
int
d;
printf("请输入一个十进制的正整数:\n");
do
scanf("%d",&d);while(d<0);
trans(d);
}
<stdio.h>
void
trans(int
x)
{
int
a[30];//1亿好像才29位的二进制,一般不用算
//这么大的数了吧~~
int
i=0,rem;
do{
rem=x%2;x=x/2;
a[i]=rem;
i++;
}while(x!=0);
while(i>0)
printf("%d",a[--i]);
printf("\n");//倒输出正确顺序的数~
}
void
main()
{
int
d;
printf("请输入一个十进制的正整数:\n");
do
scanf("%d",&d);while(d<0);
trans(d);
}
第3个回答 2020-01-25
92/2=46——0
46/2=23——0
23/2=11——1
11/2=5..——1
5/2=2....——1
2/2=1....——0
1/2=0....——1
那么二进制就是1011100,就这么简单!
一直除到商为0为止。余数就是2进制了
46/2=23——0
23/2=11——1
11/2=5..——1
5/2=2....——1
2/2=1....——0
1/2=0....——1
那么二进制就是1011100,就这么简单!
一直除到商为0为止。余数就是2进制了