浴霸二合一还是三合一:C 语言编程 二进制转十进制

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 19:34:06
请看清!!是二进制转十进制,谢谢。

二进制转十进制
就是把十进制数除以二每一步的商和余数倒叙排列
如:
十进制数 10
2 |_10
2 |_5
1
二进制为 122

程序为:
#include <stdio.h>
main()
{
int s,i,k;
int r[];
printf("输入十进制数:");
scanf("%d",&a);
i=0;

if(a=1)
b[0]=1;

else
{
while(a>1)
{
b[i++]=a%2;
a/=2;
};
}

for(k=i;k>=0;k--)
{
printf("%d",b[k]);
}

}

#include <stdio.h>

void main(void)
{
int a,b[100],i=0,k;
printf("enter number:");
scanf("%d",&a);
while(a>=1)
{
b[i++]=a%2;
a/=2;
};

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

printf("\n");
}

/*
* 将二进制转换为10进制
*/

#include <stdio.h>
#include <math.h>

int main(void)
{
long int li_value=0;
char s_bin[20];
int i;
char tmp;
int i_len;

memset(s_bin,0x0,sizeof(s_bin));

printf("Enter bin value=");
for(i=0;i<20;i++){
tmp=getchar();
if(tmp=='1'){
s_bin[i]='1';
}else if(tmp=='0'){
s_bin[i]='0';
}else{
break;
}
}
printf("s_bin=[%s]\n",s_bin);

i_len=strlen(s_bin);

for(i=i_len-1;i>=0;i--){
if(s_bin[i]=='1'){
li_value=li_value+pow(2,i_len-1-i);
}
}
printf("Int value=[%d]\n",li_value);
}

#include <stdio.h>
#include <string.h>
void main()
{
long int result=0;
char s[80];
while(scanf("%[01]%*c",s)!=1){
fflush(stdin);
};
int len = strlen(s);
for (int i=0;i<len;i++)
result=result*2+((int)(*(s+i))-48);
printf("%ld\n",result);
}

#include <stdio.h>

void main(void)
{
int n,a,N[i],b,c=0;
printf("输入您二进制位数");
scanf("%d",&n);
printf("输入您二进制数");
for (i=1;i<=n;i++);
{
scanf("%d",&a);
b=a*2^(i-1);
c=c+b;
}
printf("输入您十进制数d",c);
}

好象有两位仁兄的程序是将十进制转化为二进制吧