发布网友 发布时间:2024-02-10 01:50
共3个回答
热心网友 时间:2024-03-01 13:09
C语言程序如下:
#include<stdio.h>
int main(){
int N,i,t;
int a[100];
scanf("%d",&N);
for(i=0;N!=0;i++){
a[i]=N%2;
N=N/2;
}
for(t=i-1;t>=0;t--){
printf("%d",a[t]);
}
}
思路:反复地将n除以2取余数;将取出的余数用数组存放;由于先取出的是低位数据,后取出的是高位数据,因此需将数组逆序输出。
扩展资料:
1、十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)
2、十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)
3、十进制负数转二进制:“先取正数的二进制值,再取反,加1”
参考资料:百度百科-二进制
热心网友 时间:2024-03-01 13:09
如下
代码
#include
void getbirn( int a,char *s)
{
int m=a,i=0,j=0;
char str[64];
while(m)
{ str[i]=m%2+'0';
if (m=m/2)
i++;
}
for(j=0;i>=0;i--,j++)
{
*(s+j)=str[i];
}
*(s+j)='\0';
return;
}
int main(void)
{
int n;char s[64];
while(scanf("%d",&n)!=1||n<=0);
getbirn(n,s);
puts(s);
return 0;
}
热心网友 时间:2024-03-01 13:10
#include <stdio.h>65
input=65
1000001