c语言实现十进制转换二进制

如果通过算法实现十进制对二进制的转换,十进制对八进制可以在输出格式的时候加上%o 而不能对二进制进行转换.请帮忙写个十进制对二进制进行转换的c语言程序.

思路:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

参考代码:

#include<stdio.h>  
int main() 
{  
int a,s[20],i=0,rem;  
printf("请输入整数:\n");   
scanf("%d",&a);   
while(a){   
rem=a%2;   
a=a/2;   
s[i++]=rem;
}  
printf("输出的二进制:");  
while(i>0)   
printf("%d",s[--i]);  
printf("\n"); 
return 0;
}
/*
输出: 
请输入整数:
10
输出的二进制:1010
*/
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-26
二进制——>十进制

#include<iostream>
using namespace std;
int main()
{
void pb(int n);
int n;
cin>>n;
pb(n);
return 0;
}
void pb(int n)
{
if(n!=0)
{
pb(n/2);
putchar('0'+n%2);
}
}

十进制——>二进制
#include<stdio.h>
int main()
{
int n;
int i;
char a;
scanf("%d",&n);
getchar();
while(n--)
{
i=0;
while((a=getchar())!='\n')
{
i=i*2+(a-48);
}
printf("%d\n",i);
}
return 0;
}本回答被提问者采纳
第2个回答  2020-12-10

C语言_010_二进制转十进制_上

第3个回答  2012-03-26
#include<iostream>
#include<stack>
#include<string>
using namespace std;
string zhuanhuan(int num,int base)
{
string digitChar="0123456789" ,numStr= "";
stack<char>stk;
do{
stk.push(digitChar[num%base]);
num /= base;
}while(num!=0);
while(!stk.empty())
{
numStr += stk.top();
stk.pop();
}
return numStr;
}
int main()
{
int m , n;
cout<< "请输入要转换的数字:" ;
cin >> m;
cout<< "请输入要转换的进制:";
cin >> n;
cout << "将"<< m << "转换成" << n << "进制后为:" ;
cout << zhuanhuan(m,n) << endl;;
system("pause");
return 0;
}
以上代码能实现任意进制之间的转换!希望对你有帮助!!本回答被网友采纳
第4个回答  2012-03-26
void convert(unsigned int indata, char* outdata)
{
int i;
for(i= 8*sizeof(unsigned int); i>= 0 ; i--)
{
if(indata & (1 << i)) *outdata++ = '1';
else *outdata++ = '0';
}
*outdata = 0;
}

用c语言把十进制转换成二进制
void main(){int ten,er=0,fig;int i;printf("输入十进制数:");scanf("%d",&ten);if(ten!=1){for(i=1;ten>1;i++){ fig=ten%2;ten=ten\/2;er+=fig*pow(10,(i-1));} er+=1*pow(10,(i-1));printf("转化为二进制数为:%d\\n",er);} } ...

c语言怎么将十进制转化成二进制
void main(){ \/\/进制转换函数的声明 int transfer(int x);int x;printf("请输入一个十进制数:");scanf("%d",&x);printf("转换成二进制数是:%d\\n",transfer(x));} int transfer(int x){ int p=1,y=0,yushu;while(1){ yushu=x%2;x\/=2;y+=yushu*p;p*=10;if(x<2){ y+=...

c语言十进制转二进制代码
c语言十进制转二进制一般来说就是指在C语言环境下,实现把十进制转换成二进制,也就是属于一种进制的转换,其原理通常是正整数转换成二进制,采用除二取余,然后倒序排列,高位补零的方式。参考范例:十进制转二进制示例代码一 include stdio.h int main(){ int i, n = 0, b[16];scanf(%d, ...

C语言十进制转二进制,程序和流程图,最好有注释,谢了!
这个也要别人写就有点懒了,其实10进制转2进制原理非常简单,把十进制数 模 2(也就是小学生都知道的除以2得到的余数),得数倒数放在一个字符数组中,然后把这个数除以2,得数再安装上面的步骤执行,直到这个得数<2,作为第一位就可以,程序如下:int a;int i;char bits[1024];\/\/多一点没关...

c语言实现十进制转换二进制
思路:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。参考代码:...

用c语言编程,实现十进制和二进制的相互转化。
int getnumber(char *s,int *n){ char *p=s; int k,m; *n=0; m=1; while ( *p != ')' ) p++; k=atoi(p+1); p--; if ( k==2 || k==10 ) { while ( *p!='(' ) { (*n)+=((*p)-'0')*m; m*=k; p--; } return k; } else retur...

用C语言把十进制转换成二进制
include<stdio.h> void main(){ int m;int a[20]={0};\/\/初始化数组 int i,j=0;\/\/计数器 scanf("%d",&m);while(m>0){ a[j]=m%2;j++;m=m\/2;} for(i=j;i>=0;i--){ printf("%d",a[i]);\/\/输出二进制 } } ...

c语言编写一个程序,将十进制整数n 转换成二进制数
y=0,yushu;while(1){ yushu=x%2;x\/=2;y+=yushu*p;p*=10;if(x<2){ y+=x*p;break;} } return y;} void main(){ \/\/进制转换函数的声明 int transfer(int x);int x;printf("请输入一个十进制数:");scanf("%d",&x);printf("转换成二进制数是:%d\\n",transfer(x));} ...

C语言十进制转二进制
十进制转二进制可以使用库函数itoa。itoa函数原型:char*itoa(int value,char*string,int radix);功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。

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

相似回答