1、实现代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;
//十进制数字转二进制字符串
void D2B(int in, string &out)
{
int shang, yu;
vector<int> array;
while(in/2 != 0){
shang = in/2;
yu = in%2;
array.push_back(yu);
in = shang;
}
array.push_back(in%2);
for(int i = array.size()-1; i >= 0; i--){
cout << array[i];
if(array[i]){
out.push_back('1');
}else{
out.push_back('0');
}
}
cout << endl;
}
//二进制字符串转十进制数
int B2D(string in)
{
int e = in.size()-1;
int out = 0;
for(int i = 0; i < in.size(); i++){
if(in[i] != '0'){
out += pow(2, e);
}
e--;
}
cout << out << endl;
return out;
}
int main(int argc, char *argv[])
{
int m_number;
string m_string;
while(1){
m_string.clear();
cin >> m_number;
D2B(m_number, m_string);
B2D(m_string);
}
return 0;
}
2、运行结果
6
110
6
12345
11000000111001
12345