有关二进制转化为十进制的问题——出了点小毛病,望高手指点。

mituzhishi 2004-02-23 08:08:03
#include<iostream>
using namespace std;
int main()
{
int sum=0,num,i=1;
cout<<"Input a binary number:"<<endl;
cin>>num;
while(num>0)
{
if(num%10>1)
{cout<<"Error input!"<<'\n';
goto loop;//第一个goto语句
}
sum+=(num%10)*i;
i*=2;
if(sum>1023)//二进制1111111111=1023
{
cout<<"The number is too large!"<<endl;
goto loop;//第二个goto语句
}
num/=10;
}
cout<<"the decimal notation of the binary number is :"<<endl;
cout<<sum<<endl;
loop:
return 0;
}
当输入的二进制数高于十位时,输出结果恒为0。第二个goto语句防止它高于十位,可是不起作用。
请高手告知为什么高于十位时结果恒为0,并请改进该程序使之对高于十位的情况发出警告
...全文
103 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复

64,654

社区成员

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

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