从键盘上输入一个二进制字符串,然后将其转换为十进制整数进行输出

如题所述

第1个回答  2010-11-19
先简单给你说一下思路,汇编的
设置缓冲区,输入字符串,将字符串的ASC码值减30H得到字符串的每个值,普安段输入多少个字符,根据字符的个数,用个左移指令存到一个或几个单元中,然后循环除以10,得到一个个余数,即十进制的各个位,并存在存储区,最后全部加上30H后以相反的顺序输出。
如果你有一定基础,按照这个步骤再参考课本应该可以编出来。
第2个回答  推荐于2016-04-09
可以直接调用pow()函数,也可直接模拟计算实现pow()的功能,数据大建议选择后者,避免重复计算。

#include <stdio.h>
#include <math.h>
#include <string.h>

int main()
{
char s[21];
long a, i, len, k;

scanf("%s",s);
len = strlen(s);
a = 0; k = 1;
for(i=len-1; i>=0; i--)
{
if(s[i] == '1') a += pow(2.0, len-1-i);
//a += k;
//k = k * 2; /* 表示2^k的值 */
}
printf("%ld\n",a);
return 0;
}本回答被提问者和网友采纳

从键盘上输入一个二进制字符串,然后将其转换为十进制整数进行输出
先简单给你说一下思路,汇编的 设置缓冲区,输入字符串,将字符串的ASC码值减30H得到字符串的每个值,普安段输入多少个字符,根据字符的个数,用个左移指令存到一个或几个单元中,然后循环除以10,得到一个个余数,即十进制的各个位,并存在存储区,最后全部加上30H后以相反的顺序输出。如果你有一定...

编写程序:从键盘输入一个二进制正整数,输出对应的十进制。
void main(){ long binary,digit,decimal=0,power=1; \/\/赋初值power=1 printf("\\n请输入一个二进制: \\n");\/\/fflush(stdin);scanf("%ld",&binary);do{ digit=binary%10;decimal=decimal+digit*power;power*=2;binary=binary\/10;} while(binary!=0);printf("十进制数是: \\n");printf...

...1组成的二进制字符串,实现向十进制的转换并输出结果。
printf("其十进制值为:%d\\n", res);} else { printf("输入有错。\\n");} }

c语言如何把一个字符串格式的二进制数转化为整数型的十进制数?
首先要说,在计算机里面不存在十进制数。我们看到的输出的十进制数,其实是C编译器把真正的二进制数的数值以十进制形式显示在屏幕上。如果说计算机里面有十进制数的话,那么BCD数可以算是一种形式的十进制数。而题目中的字符串格式的二进制数,也就是一串的'0','1'字符;转化为整数型其实就是求得...

“二进制数”字符串转换为十进制整数输出的代码C++
include <iostream>using namespace std;int main(){char str[128];int dec=0;cout <<"input a string: ";cin>>str;for(int i=0;str[i];i++ ){dec *=2 ;if ( str[i]=='1' )dec += str[i]-'0' ;}cout << dec<<endl;return 0;} ...

C语言问题:输入一个二进制数,输出其对应的十进制数。(包括正数、负数...
11(二进制)=3 (十进制) 对了要加分

求助啊c 把字符串形式输入的二进制数转化为10进制数
;for(i=0;i<t;i++){ if(str[i]!='0' && str[i]!='1')\/\/输入检查 { printf("输入不是二进制整数!\\n");break;} int b=str[i]-'0';\/\/把当前位字符变为数字 base+=b*(int)pow(2,t-i-1);\/\/代入二进制转十进制公式;pow是求乘方的函数 } printf("%d\\n",base);} ...

求救C++将键盘输入的二进制数字组成的字符串转换成相应的十进制整数
a++

c++ 二进制转十进制
首先,输入一个字符串。由于一般整数int类型为4个字节,32位。所以要求输入的字符串不能超过32位,超过了的话,在程序中就无法显示出来了。其次,判定字符串的长度(可以用strlen(),也可以用别的方式),加入字符串长度为i。从字符串第一位开始判定,如果字符第j位是"1"则加一个2的i-j次方。比如...

怎样把2进制转化为10进制?
一个十进制数转换为二进制数要分整数部分和小数部分分别转换,最后再组合到一起。整数部分采用除2取余,逆序排列法。具体做法是:用2整除十进制整数,可以得到一个商和余数。再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到...

相似回答