二进制数1100101B对应的十进制数是?

为什么答案是101?我算的是83?怎么算的?... 为什么答案是101?我算的是83?怎么算的? 展开
 我来答
测绘二哈
2009-02-26 · TA获得超过2727个赞
知道小有建树答主
回答量:596
采纳率:0%
帮助的人:0
展开全部

给你推荐一个程序你自己看就是了的,上面又详细的注释说明的,源程序如下(源程序使用的C语言,在VC++系统中也可以调试通过的):

#include<stdio.h>

#include<math.h>

#include<string.h>

#include<stdlib.h>

void main()

{

 int j,k,m,n,x;

 double r,p=0;

 char a[20];

 printf("请输入一个任意进制的数:");

 gets(a);//在头文件<string.h>中定义

 printf("请输入此数为何种进制的数:");

 scanf("%d",&n);

 m=strlen(a);//求字符串的长度

 x=m;

 for(k=0;k<m;k++)//主要是分段,以小数点为界限

 {

  if(a[k]=='.')

  {

   x=k;

   break;

  }

 }

 for(j=x-1;j>=0;j--)

 {

  if(a[j]=='-')//符号的处理

   break;

  if(a[j]=='A')

   r=10;

  else

   if(a[j]=='B')

    r=11;

   else

    if(a[j]=='C')

     r=12;

    else

     if(a[j]=='D')

      r=13;

     else

      if(a[j]=='E')

       r=14;

      else

       if(a[j]=='F')

        r=15;

       else        

        if(a[j]>='G'&&a[j]<='Z'||a[j]>='a'&&a[j]<='z')

        {

         printf("ERROR!\n");

         exit(0);//在头文件<stdlib.h>中定义,无条件跳出程序的的运行

        }

        else         

         r=a[j]-'0';//将字符转换成数字

  if(r>=n)

  {

   printf("ERROR!\n");

   exit(0);

  }

  p=p+r*pow((double)n,(double)(x-j-1));//计算结果

 }

 if(a[x]=='.')

 {

  for(j=x+1;j<m;j++)

  {

   if(a[j]=='A')

    r=10;

   else

    if(a[j]=='B')

     r=11;

    else

     if(a[j]=='C')

      r=12;

     else

      if(a[j]=='D')

       r=13;

      else

       if(a[j]=='E')

        r=14;

       else

        if(a[j]=='F')

         r=15;

        else    

         if(a[j]>='G'&&a[j]<='Z'||a[j]>='a'&&a[j]<='z')

         {

          printf("ERROR!\n");

          exit(0);

         }

         else

          r=a[j]-'0';//将字符转换成数字

  if(r>=n)

  {

   printf("ERROR!\n");

   exit(0);

  }

  p=p+r*pow((double)n,(double)(x-j));

  }

 }

 printf("转换结果为:");

 if(a[0]=='-')

  printf("-");

 printf("%lf\n",p);

}

此程序可以计算任意进制(包括二进制到十六进制的转换,可以选用)。注意楼主你的1100101B是不对的二进制数的,二进制中只能包括0和1,去掉B后为1100101,据此计算出十进制数为101的。

根据程序运行即可知道运行结果如下图所示:

恨善干0B
推荐于2018-05-07
知道答主
回答量:44
采纳率:0%
帮助的人:22.7万
展开全部
2^6 x 1+2^5 x 1+2^4 x 0+2^3 x 0+2^2 x 1 +2^1 x 0+2^0 x 1
= 64 + 32+ 4+ 1=101
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式