婚庆会所:C语言编程

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 02:43:26
谁帮我做个2进制和10进制数互相转化的程序

#include<stdio.h>

int conv2to10(int a) /*将2进制转换为10进制*/
{
int sum=0,q=1;
while(a>0)
{
sum+=(a%10)*q;
q*=2;
a/=10;
}
return sum;
}

int conv10to2(int a) /*将10进制转换为2进制*/
{
int sum=0,q=1;
while(a>0)
{
sum+=(a%2)*q;
q*=10;
a/=2;
}
return sum;
}

void main()
{
int s=0,sum=0,a,q=1;
printf("enter 1. 2to10 2. 10to2 :");
scanf("%d",&s);
printf("\n enter number:");
scanf("%d",&a);
if(s==1)
sum=conv2to10(a);
else
sum=conv10to2(a);

printf("result: %d \n",sum);
}

#include <iostream.h>
#include <math.h>
void convert(int s){
int arr[16];
int m(1);
int i(15);
while(s!=0)
{
m=s%2;
s/=2;
arr[i]=m;
i--;
}
cout<<"转换为二进制后的输出为:";
for(int j=i+1;j<=15;j++)
cout<<arr[j];
cout<<endl;
}
void main(){
cout<<"请输入一个十进制整数(0---32767之间)的数,计算它的二进制值:";
int a;
cin>>a;
a=abs(a);
if(a!=0){
if(a>32767) cout<<"数字太大,请重新输入!!!"<<endl;
else convert(a);
}
else cout<<"转换为二进制后的输出为:"<<0<<endl;
}