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

 我来答
agole1989
推荐于2018-04-13 · 超过30用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:88.4万
展开全部
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;
}

这个是比较简单易懂的函数,看看吧。当然可以用另一种方法,就是新手会比较容易晕。
追问
错的离谱……
追答
孩子,程序测试过了,我忘了写了一个c++的代码,你把你的头文件加上,然后把里面的cin和cout换成scanf()和prinft函数。二进制是以字符串形式输入,一般人都这么做!
s443770865
2012-08-14 · 超过19用户采纳过TA的回答
知道答主
回答量:141
采纳率:0%
帮助的人:59.9万
展开全部
举个例子吧 例如二进制数1110 0101 那么转化为十进制为多少呢?答案为229.
怎么算的呢? 将每为的数乘以2的n-1次方再相加,n为第几位;1+0+4+0+0+32+64+128=229
追问
程序是什么?
追答
写简单点 假定你输入的二进制就是8位  不考虑其他因素.我们输入是以十进制输入0和1;
#include
void main()
{
int a[8];
int i,sum;
for(i=0;i<8;i++)
{
scanf("d%",&a[i]);/输入0或1
}
for(i=0;i<8;i++)
{
if(i==0)
sum=1*a[0];
else
{
sum=sum+sum*2*a[i];
}
}
printf("d&",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Horizon92
2012-08-14
知道答主
回答量:3
采纳率:0%
帮助的人:4680
展开全部
VC环境下用C++实现
#include<iostream>
using namespace std;
void main()
{
int obj;
cout<<"输入二进制数:"<<endl;
cin>>obj;
int x=0,y;
int n=1;
while(obj!=0)
{
y=obj%10;
x+=y*n;
n=n*2;
obj=obj/10;
}
cout<<"转换成的十进制数:"<<endl;
cout<<x<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3a747c1
2012-08-14 · 超过17用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:34.9万
展开全部
首先判断输入的是不是一个合法的二进制数,个人觉得输入用字符型输入,再将其强制转化为数值型计算,程序不难
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgao622
2012-08-14 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6549
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
#include<math.h>
#include<string.h>
#include<stdio.h>
int BinToDec(char *bin)
{
int dec= 0;
int n= strlen(bin)-1, i=0;
for(; n >= 0; n--, i++)
dec+= (bin[i]-48) * pow(2, n);
return dec;
}
void main()
{
char b[20]= "11001100";
int d= BinToDec(b);
printf("%d\n", d);
}
更多追问追答
追问
遗憾,错了,啊,大神,我的作业怎么办
追答
哪错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式