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

c语言中2进制字符串转10进制

发布时间: 2022-11-17 00:14:37

‘壹’ 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;

}

‘贰’ 用c语言怎么写 实现2进制转成10进制

按照楼主的意思,应该是2机制格式表示的字符串,转成10进制格式的字符串
(否则,都是数值的话,不需要转。把它看成2进制或10进制,都可以)
所以,该功能分两部分
1,把2进制表示的字符串,转换成数值
2,把数值转换成10进制表示的字符串

‘叁’ c语言编程 将输入的2进制字符串转换为10进制数输出

数组s已经定义长度,strlen的结果就是100,另外换算的时候语句可以优化

‘肆’ c语言如何把一个字符串格式的二进制数转化为整数型的十进制数

首先要说,在计算机里面不存在十进制数。我们看到的输出的十进制数,其实是C编译器把真正的二进制数的数值以十进制形式显示在屏幕上。如果说计算机里面有十进制数的话,那么BCD数可以算是一种形式的十进制数。
而题目中的字符串格式的二进制数,也就是一串的'0','1'字符;转化为整数型其实就是求得其实际数值,最后以十进制形式输出。
#include <stdio.h>
int main()
{
long int m;
char c0[50],*c ;
while(scanf("%s",c0)!=EOF){
m = 0;c=c0;
while(*c)
m += (m + *(c++)-'0');
printf("%d\n",m);
}
return 0;
}

‘伍’ C语言,利用函数实现将二进制数转化为十进制数并实现相加。

1、2进制10进制的转换方法:
二进制数1101转十进制:
1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13
附加一个八进制转十进制的例子吧:
507(八进制转10进制):
5×8的2次幂+0×8的1次幂+7×8的0次幂=
5×64+0×8+7×1=327(10进制)

2、例程:

#include"stdio.h"
doubleBtoD(charB[])
{
doubled=0;//转为十进制数的中间结果变量
inti=0;//当前求到了二进制数的位置
while(B[i++]!='')//当没有到二进制数结束时,一直循环
{
d=d*2+B[i-1]-Ɔ'//求出每个二进制位的位权(从高位到低位,所以每求一位,先前的都应变为原来的2倍),累加到中间结果
}
returnd;//返回最终结果
}
intmain()
{
charb1[20],b2[20];//定义两个二进制数字符串
scanf("%s%s",b1,b2);//输入两个字符串
printf("%.0lf",BtoD(b1)+BtoD(b2));//输出两个二进制数转为十进制数后的和
}

‘陆’ C语言将二进制数字转化为十进制数

n = n * 2 + p[i] - '0';

‘柒’ 如何用c语言编写二进制和十进制之间的转换

二进制转十进制
n
为输入的二进制数,d用来处理该数。
k为标志位,当k为1时表示输入的数有问题,需要重新输入。
i为每次分解的个位数;j为二进制的权值;m为累计的十进制和;p为输入的数的位数,超过10时,该数越界,需要重新输入,定k=1。
程序如下:
#include
<conio.h>
main()
{
long
int
n,d;
int
k,i,j,m,p;
do
{
k=0;
m=0;j=1;i=0;p=0;
printf("\ninput
an
number
only
includes
0
or
1:");
scanf("%ld",&n);
if(n<0)
k=1;
d=n;
while(d)
{
i=d%10;p++;
if(i>1
||
p>10)
{k=1;break;}
m+=i*j;
j=j*2;
d/=10;
}
}
while(k==1
||
m==0);
printf("\n
the
number
is
%d\n",m);
getch();
}

‘捌’ C语言 二进制数转化为十进制数

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

参考代码:

#include"stdio.h"
voidfun(intn){
if(n==0)return;
fun(n/2);
printf("%d",n%2);
}
intmain(){
intn;
scanf("%d",&n);
fun(n);
return0;
}
/*
运行结果:例如求10的2进制
10
1010
*/

‘玖’ 用C语言编写二进制转换十进制的程序。

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