二进制转换成十进制

描述
一串串太多太长的二进制数真是枯燥乏味,难怪小明看着看着就看花眼了;小亮看着看着就睡着了;小晶看着看着就恐慌起来了,仿佛自己变成了机器人,原本丰富多彩的世界一下子成了0和1的汪洋大海。他们一致要求将这些二进制数转换成十进制数,只有这样,心里才安稳,才痛快,睡觉才合得上眼。这项工作自然就落到你的手里了,因为早就听说你是处理二进制数的高手了,一点也不怀疑你会一下子想出十七八种转换的方法,而且其中还有几种方法还很经典呢,这儿真的就是你用武的好地方,请下手吧。

输入
有一些64位的二进制数,以01数字串的形式表示,每行只放一个数。如果是-1,那就表示输入结束。

输出
每一个二进制数对应一个十进制数输出。每个输出都要换行。

样例输入
0000001010010000111110111110110110011001011111110011111100000001
0000000000000000000001111111110101010010101010010100000001111100
0000000000000000000000000000000000000000000000000000000000100001
-1

样例输出
184924582623264513
8784594944124
33

#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
int main(){
    
    
	int i,n; 
	string s; 
	unsigned long long m=0,p=1;
	cin>>s;
	while (s!="-1")
	{
    
    
		m=0;p=1;
		for (int i=0;i<64;i++)
		{
    
    
			if (s[63-i]=='1') m+=p;
			p*=2; 
		} 
		cout<<m<<endl;
		cin>>s; 
	} 		
	return 0;
}

原来定义个字符串就能直接读取了,乌拉!

猜你喜欢

转载自blog.csdn.net/m0_51794965/article/details/110227442