当前位置:首页 » 编程语言 » c语言怎么把二进制数转为10
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么把二进制数转为10

发布时间: 2022-07-05 14:30:17

1. 编程c语言二进制怎么转化为十进制

先把二进制读成字符串, 或者逐个读入字符

然后, 将字符串转为整型。

intbin_to_dec(char*s)
{
intr=0;
while(*s)
{
r<<1;
if(*s=='1')
r|=1;
}
returnr;
}
intmain()
{
chars[40];
gets(s);
printf("%d ",bin_to_dec(s));
return0;
}

2. 编程 c语言二进制怎么转化为十进制

int fun(int j);
void main()
{
int i;
char Binary[100];
cout << "请输入要转化为10进制的2进制数" << endl;
cin >> Binary;
char * p = Binary;
i = strlen(Binary) - 1;
int Dec = 0;
int j = 0;
while (i >= 0)
{
Dec = Dec + (*(p + i) - 48 )* fun(j);
j++;
i--;
}
cout << Dec << endl;
}
int fun(int j)
{
int JI = 1;
for(int i = 0; i < j; i++)
{
JI = JI * 2;
}
return JI;
}

这个是比较简单易懂的函数,看看吧。当然可以用另一种方法,就是新手会比较容易晕。

3. C语言 将一个二进制数,转换为对应的十进制数。

#include<stdio.h>
#include<math.h>
int main()
{
int a[10] = {1,0,0,1,0,1,1,0,0,0};//这里只是预先写好的二进制数,可以自行改为主动输入,主要体现过程
int i = 0;
int sum = 0;
for(i = 9;i>=0;i--)//9为数组最后一位
{
sum = sum + a[i];pow(2,abs(i-9));//i- 9 的绝对值判定乘以2 的几次方
}
printf("%d\n",sum);
return 0;
}

4. 如何使用C语言编写二进制转换为十进制的程序

将二进制转成十进制,按权值展开求和即可。

可以通过以下代码解决:

#include <stdio.h>

#include <stdlib.h>

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len<=16)

{

for(i=0;i<len;i++)

{

m=1;

if(a[i]=='1')

{

for(j=1;j<=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

(4)c语言怎么把二进制数转为10扩展阅读

我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。

十进制转二进制:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

八进制转二进制:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

负数的进制转换稍微有些不同。

先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。

例:要求把-9转换为八进制形式。则有:

-9的补码为1111 1111 1111 0111。从后往前三位一划,不足三位的加0

111---->7

110---->6

111---->7

111---->7

111---->7

001---->1

然后我们将结果按从下往上的顺序书写就是:177767,那么177767就是十进制数-9的八进制形式。

其实转化成任意进制都是一样的。

5. 单片机C语言中将二进制数转化为十进制的办法

按照如下步骤即可用C语言把二进制数转换成十进制数的程序:

1、首先在主函数中设置成函数Sum,另外定义了一个数组array[8],用于存放输入的八位二进制数。

6. 用C语言编写二进制转换十进制的程序。

1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。另外定义了一个数组array[8],用于存放输入的八位二进制数。

7. c语言怎么将2进制转化为10进制

#include<stdio.h>
intSum(inta[]);
intpower(intb);
intmain()
{
intarray[8],i;

printf("输入一个8位二进制数:");

for(i=0;i<8;i++)
{
scanf("%1d",&array[i]);
}

printf("转换为十进制数后是:%d ",Sum(array));

return0;

}

intSum(inta[])
{
intn,i,sum=0,term;//n为指数,term为每一项的值,如1*(2*2),sum为总和

for(i=0,n=7;i<8;i++,n--)
if(n>=0)
{term=a[i]*power(n);
sum=sum+term;
}
returnsum;


}

intpower(intb)
{
inti=2,j=1;
if(b==0)
i=1;
for(;j<b;j++)
i=2*i;
returni;

}

8. c语言,将一个二进制数转换成10进制数输出

将二进制转成十进制,按权值展开求和即可。

可以通过以下代码解决:

#include <stdio.h>

#include <stdlib.h>

int main()

{

char a[17];

gets(a);

int len,i,sum=0,m,j;

len=strlen(a);

if(len<=16)

{

for(i=0;i<len;i++)

{

m=1;

if(a[i]=='1')

{

for(j=1;j<=len-i-1;j++)

m*=2;

sum+=m;

}

}

printf("%d",sum);

}

return 0;

}

9. 怎么用c语言将二进制转化成十进制

//---------------------------------------------------------------------------#include<stdio.hlongintbtd(char*s)/*将以字符串形式存储在s地址中的二进制数字转换为对应的十进制数字*/{longintrt=0;inti,n=0;while(s[n])n++;for(--n,i=n;i=0;i--)rt|=(s[i]-48)<<n-i;returnrt;}intmain(intargc,char*argv[]){printf(%ld,btd(11011));/*示例,输出11011B的十进制形式*/return0;}//---------------------------------------------------------------------------
满意请采纳。