十进制转换二进制
long long decToBin(int dec){
long long res = 0, j = 1;
while(dec){
res = res + j * (dec % 2);
dec = dec / 2;
j = j * 10;
}
return res;
}
二进制转换十进制
int binToDec(string str){
int res=0;
for(int i=0;i<str.size();i++){
int num=str[i]-'0';
res=res*2+num;
}
return res;
}
测试
#include <iostream>
#include<sstream>
#include<cstring>
#include<cctype>
using namespace std;
long long decToBin(int dec){
long long res = 0, j = 1;
while(dec){
res = res + j * (dec % 2);
dec = dec / 2;
j = j * 10;
}
return res;
}
int binToDec(string str){
int res=0;
for(int i=0;i<str.size();i++){
int num=str[i]-'0';
res=res*2+num;
}
return res;
}
int main() {
int num;
while (cin >>num) {
cout<<"num is : "<<num<<endl;
cout<<"decToBin: ";
cout<<decToBin(num)<<endl;
cout<<"binToDec: ";
cout<<binToDec(to_string(decToBin(num)))<<endl;
}
return 0;
}
测试结果