preface
之前有一篇转载的文章提到了int和string的互化,但在今天解决问题的时候仍然感觉不足,在此补充。
原问题:
string类型二进制转化为string类型十进制
遇到的问题及解决
- 对函数
return
的理解。在main中直接使用函数(例如输出),相当于直接使用函数内返回的变量。 - ✅
int ——> string 类型
:解决参考博客,其中的详细解释:
//⚠️头文件:#include <sstream>
stringstream ss;//?清空
ss<<sum;//?向流中传值
ss>>hexString;//?向hexString里写入值
- ✅
string ——> int 类型
:参考我的上一篇。直接减去'0'
。 at()
总是出问题。解决:直接可以吧字符串看成字符数组,用string[i]
直接获取即可。
解决代码:
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
using namespace std;
string bin2Hex(const string& binaryString){
string hexString;
int sum=0;
for(int i=0;i<binaryString.length();i++){
if(binaryString[i]=='0'||binaryString[i]=='1'){
sum+=(binaryString[i]-'0')*pow(2,binaryString.length()-1-i);
stringstream ss;
ss<<sum;
ss>>hexString;
}
else
hexString = "type wrong!";
}
return hexString;
}
int main(){
string hex;
getline(cin, hex);
cout<<bin2Hex(hex)<<endl;
return 0;
}
"the best people in life are free."