实在读不懂了,请大家帮我看下,书中的一个例题。
本人刚开始学C++, 现在学到程序控制结构。书中有一个例题,是关于二进制向十进制转换的编程题。
原题如下:输入用一个二进制数表示的正整数,转换成十进制整数输出。
书中有提示:用户从高位到低位输入二进制位串,程序可以采用移位方式处理数据,每读入一位值,就把变量Dec(变量Dec表示转换之后的十进制数)中存入的数据乘以2,然后累加当前输入值。
书中程序如下:
#include<iostream>using namespace std;int main(){ int Dec=0; char ch; cout<<"Binary = "; do //略去前导符号,直至ch存放第一个合法数字 { cin.get(ch); }while(ch !='0'&&ch!='1'); do //循环 { Dec +=ch-'0'; //把字符转为数字,累加 cin.get(ch); //读入一位 if(ch=='0'||ch=='1') //如果是0或1 Dec*=2; //己经转换的数据左移一位 ?????? }while(ch=='0'||ch=='1'); //读入非0,非1字符时结束循环 cout<<"Decimal = "<<Dec<<'\n'; //输出转换结果}