二进制111010111001转换成十进制?

 我来答
月光下的qq
2020-06-23 · 科技优质答主
月光下的qq
采纳数:392 获赞数:671

向TA提问 私信TA
展开全部
您好,很高兴回答您的问题。
二进制转换成十进制的原则为每个位置上的数字乘以所在位的位权值,然后相加。
所以(111010111001)2=1*2的11次方+1*2的10次方+1*2的9次方+1*2的7次方+1*2的5次方+1*4次方+1*2的3次方+1*2的0次方=3768,最后的结果就是十进制数。
金色潜鸟
2020-06-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5659万
展开全部
方法1,调用 系统函数 strtol(s,0,2); s是用字符串形式存放的2进制数值,参数三那个2表示字符串里的数值是 2 进制,(中间那个 0 实际上是 char *pEnd; -- 你不必深究。)。返回值 就是 10进制数值。
方法2,相当于手算。用各位的 2 的次方计算,并加起来。右数第一位是个位,是2的0次方,右数第2位是2的1次方,右数第i位是2的 i-1次方。位数多时,可用 pow(2,i-1) 计算。
#include <stdio.h>
#include <math.h>
int main(){
char s[]="111010111001";
int a;
a = strtol(s,0,2);
printf("%d\n",a);
//----
a=0;
a=pow(2,11)+pow(2,10)+pow(2,9)+pow(2,7)+pow(2,5)+pow(2,4)+pow(2,3)+1;
printf("%d\n",a);
return 0;
}
输出:
3769
3769
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式