输入一个2进制数转换成10进制输出—循环练习9

戏子无情 提交于 2020-02-07 00:44:51

在这里插入图片描述
*#include
#include <Windows.h>
#include

using namespace std;

int main(void) {
string str; //二进制数据
int q = 0; //
int p = 1;

cout << "请输入一个人二进制数据: ";
cin >> str;

for(int i=str.length()-1; i>=0; --i) {
	int j = str[i] - '0';
	    q += j*p;
		p *= 2;
}

cout << "q==" << q << endl;

/**


for (int i=str.length()-1; i>=0; i--) {
	int x = str[i] - '0';  
	s += x * p;
	p *= 2;
}
//假设:str = 1010  s = 0   p = 1    x = 0

// 1.   0-0 = 0       x = 0
// 2.   0*1 = 0       s = 0     0+0= 0=s 
// 3.   1*2 = 2       p = 2
// s = 0  p = 2

// 1.   1-0 = 1       x = 1
// 2.   1*2 = 2       s = 2     0+2= 2=s
// 3.   2*2 = 4       p = 4
// s = 2  p = 4  

// 1.     0-0 = 0       x = 0
// 2 .    0*4 = 0       s = 2    2+0= 2=s
// 3.     4*2 = 8       p = 8
// s = 2  p = 8

// 1.   1-0 = 0       x = 1 
// 2.   1*8 = 0       s = 8      2+8= 10=s
// 3.   8*2 = 4       p = 16
**/
system("pause");
return 0;

}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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