自立题4-2代码示例

流过昼夜 提交于 2019-12-02 09:05:30

题目说明
将输入的二进制数(一个非“0”即“1”的字符串)转化为十进制并输出结果。

实验目的
1、使用字符数组来存放所输入的二进制数,循环处理其中的每个“位”(字符数组的元素),
最终“拼成”一个十进制数并输出。
2、加入检查输入数据的合法性。

代码示例

/*
*/
#include<iostream>
#include <cmath>     //包含pow函数
using namespace std;

int main(){
	char a[20];   //声明数组
	int value =0;    //声明value,并赋初值为0

	cin>>a;        //输入数组
	int i=0;
	while(a[i]!='\0'){         //检查输入是否合法,且判断输入字符串的长度
		if(a[i]!='0'&&a[i]!='1'){
			cout<<"输入不正确!"<<endl;
			system("pause");
			return 0;
		}
		i++;
	}
	//cout<<i<<endl;  i代表了总共有几个有效字符
	int len =i;
	
	while(i>0){        //倒序取数组中的字符,进行处理
		//cout<<"i:"<<i<<endl;
		int temp = pow(2.0,len-i);     //计算位权
		//cout<<temp<<endl;
		value = value + (a[i-1]-'0')*temp;    //a[i]-'0' 将字符转换为数字 注意下标,数组的下标从0开始
		//cout<<value<<endl;
		i--;
	}
	cout<<a<<"转化为十进制是"<<value<<endl;
	
	system("pause");
	return 0;
}
```cpp


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!