C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具

使用数组,编写一个十进制正整数转换为二进制数的转换工具。(十进制数m由键盘输入)(如:输入65,输出为1000001),需要思路。

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”

参考资料:百度百科-二进制

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-10

如下


代码
#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;
}

第2个回答  2018-01-10
#include <stdio.h>

int main()
{
int i=0,j=0,a = 0,n[100]={0};
scanf("%d",&a);
printf("input=%d\n",a);
while (a)
{
n[i++] = a%2;
a/=2;
}

for (j=i-1;j>=0;j--)
{
printf("%d",n[j]);
}

printf("\n");
return 0;
}

65

input=65

1000001

本回答被网友采纳

C语言,使用数组,编写一个十进制正整数转换为二进制数的转换工具_百度知 ...
} 思路:反复地将n除以2取余数;将取出的余数用数组存放;由于先取出的是低位数据,后取出的是高位数据,因此需将数组逆序输出。

C语言,将十进制正整数转为二进制数
include <stdio.h>#define N 30void change(int *p, int x,int *k){ int i,j,t; for(i=0;x>0;i++) { p[i]=x%2; x=x\/2; } *k=i; for(j=0;j<i\/2;j++) \/*循环结束条件改为j

用c#语言写一个将十进制转换为二进制的程序
public static void main(string [] args) { Console.WriteLine("请输入一个十进制的整数:");\/\/ 提示用户输入一个整数 int shu = Console.Readline();int i = 0;int index = 0;while (shu > 0) { \/\/ 循环条件如果这个数大于‘0’并且数组的下标元素不为‘0’时一直循环 num[i] = sh...

c语言编程,如何将十进制转化为2进制
c语言编程将十进制转化为2进制可按手工转换规则进行程序转换。整数占四个字节,每字节8位,共32位。所以,可以定义一个32位的数组来存储转换结果。循环将整数进行除2取余数,余数存储到数组中。当整数整除为0时,结束循环 逆序输出数组,得到转换结果 参考代码:include <stdio.h>void main(){ int...

利用数组编程将一个十进制整数转换成二进制整数。
十进制整数转换成二进制整数:用 toBinaryString() 就可以了!例如:class Stringdemo{ public static void main(String[] args){ \/\/String str = "18" ;\/\/int i = Integer.parseInt(str) ;System.out.println(Integer.toBinaryString(29)) ;} } ...

在C语言中,如何编写一个由十进制转化为二进制的程序呢
cout<<"输入一十进制整数与需转换的进制:";cin>>m>>n;while(n>16||n<2) { cout<<"输入进制超出数组范围,请重新输入\\n";cin>>n;} cout<<m<<"转换成"<<n<<"进制 = ";f(m,n);cout<<endl;getchar();} \/\/\/ include<iostream.h> include<math.h> void f1(int m, int n) ...

C语言:将输入的十进制正整数n转换为二进制数,并将转换结果输出,转换...
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。2、定义变量和数组:#include <stdio.h>#include <string.h>void main(){ long t1;int i, n, t, t3;char a[100]。3、 输入字符: printf("请输入字符:\\n"); gets(a); \/*输入n进制数存到数组a中*\/strupr(a); \/*将...

用C语言写的十进制数转换为二进制数的程序
if(n==0) return ;else jinzhi(n\/j,j);printf("%d",n%j);} void main(){ int n,j;printf("输入要转换的数,和要转换的进制范围在2-9之间:)";scanf("%d %d",&n,&j);jinzhi(n,j);printf("\\n")l;}递归算法,可以转换任意2-9之间的进制,如果要就100转换为2进制就输入100...

用C编程,输入一个十进制的数转化为二进制的数输出
你好!完整的代码:include<stdio.h> int main() {int num; int n,z[30];scanf("%d",&num); for(n=0;n>=0;n++) {z[n]=num%2;if(num\/2==0) break; num=num\/2;}for(;n>=0;n--) {printf("%d",z[n]); }} ...

用C语言如何将十进制转换为二进制
3、输入十进制数:printf("请输入一个十进制数(0~32767):\\n");scanf("%d", &n); \/*输入n的值*\/ 4、计算二进制数:for (m = 0; m < 15; m++) \/*for循环从0到14,最高为符号位,本题始终为0*\/ { i = n % 2; \/*取2的余数*\/ j = n \/ 2; \/*取被2整...

相似回答