请指教(输入一个8位二进制数,将其转换为十进制输出)

scooler 2006-01-13 05:24:58
#include<iostream.h>
double power (double x,int n);
void main()
{
int i;
int value=0;
char ch;

cout<<"Enter an 8 bit binary number";
for(i=7;i>=0,i--)
{ cin>>ch;
if(ch=='1')
value=value+int(power(2,i));

}
cout<<"Decimal value is "<<value<<endl;

}
double power (double x,int n)
{double var=1.0;
int j;

for(j=n;j>=1;j--)
var=var*x;
return(var);
}



//输入一个8位二进制数,将其转换为十进制输出。
编译后运行老是提示:在visual c++下运行
- 1 error(s), 0 warning(s)

找不出原因,请指教,谢谢!
...全文
896 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
scooler 2006-01-14
  • 打赏
  • 举报
回复
谢谢大家的指点!
我是初学者
kathir 2006-01-14
  • 打赏
  • 举报
回复
同意楼上的

另外,
for(i=7;i>=0;i--)
{
cin>>ch;
value=(value<<1) + (ch=='1' ? 1 : 0);
}
这个更好些
bombwang 2006-01-14
  • 打赏
  • 举报
回复
learning
cunsh 2006-01-13
  • 打赏
  • 举报
回复
#include <iostream>
#include <bitset>
using namespace std;

int main()
{
char s[10];

cin >> s;

bitset<8> b(s);

cout << b.to_ulong() << endl;

cin.get();
return 0;
}
chaoclv 2006-01-13
  • 打赏
  • 举报
回复
#include<iostream.h>
double power (double x,int n);
void main()
{
int i;
int value=0;
char ch;

cout<<"Enter an 8 bit binary number";
for(i=7;i>=0;i--)
{ cin>>ch; //这样输入太不可靠,建议一次输入,再用<<按位分析之,因为cin在没有遇到空格的时候总能输入值给ch,这样做太不好了。
if(ch=='1')
value=value+int(power(2,i));

}
cout<<"Decimal value is "<<value<<endl;

}
double power (double x,int n)
{double var=1.0;
int j;

for(j=n;j>=1;j--)
var=var*x;
return(var);
}
我啃 2006-01-13
  • 打赏
  • 举报
回复
比楼上更好的
for(i=0;i<=7;i++)
{
cin>>ch;
value<<=1;
value+=ch-'0';
}
1)连等符号好时低
2)value+=ch-'0';标准化的数字转化程序
寻开心 2006-01-13
  • 打赏
  • 举报
回复
同意楼上的

另外,
for(i=7;i>=0;i--)
{
cin>>ch;
value=(value<<1) + (ch=='1' ? 1 : 0);
}不是更好吗,干嘛要用pow那个方法呢
iamcaicainiao 2006-01-13
  • 打赏
  • 举报
回复
for(i=7;i>=0,i--)
------>
for(i=7;i>=0;i--)
逗号变成分号

64,670

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧