从键盘上输入一个二进制字符串,然后将其转换为十进制整数进行输出
展开全部
先简单给你说一下思路,汇编的
设置缓冲区,输入字符串,将字符串的ASC码值减30H得到字符串的每个值,普安段输入多少个字符,根据字符的个数,用个左移指令存到一个或几个单元中,然后循环除以10,得到一个个余数,即十进制的各个位,并存在存储区,最后全部加上30H后以相反的顺序输出。
如果你有一定基础,按照这个步骤再参考课本应该可以编出来。
设置缓冲区,输入字符串,将字符串的ASC码值减30H得到字符串的每个值,普安段输入多少个字符,根据字符的个数,用个左移指令存到一个或几个单元中,然后循环除以10,得到一个个余数,即十进制的各个位,并存在存储区,最后全部加上30H后以相反的顺序输出。
如果你有一定基础,按照这个步骤再参考课本应该可以编出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直接调用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;
}
#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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询