进制转换(十进制转二进制)(c++实现)
·
#include<iostream>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
vector<int> div(vector<int> nums,int b){
vector<int> res;
int r = 0;
for(int i = nums.size()-1;i>=0;i--){
r = r * 10 + nums[i];
res.push_back(r / b);
r %= b;
}
reverse(res.begin(),res.end());
while(res.size() && res.back() == 0) res.pop_back();
return res;
}
int main(){
string numStr;
while(cin>>numStr){
vector<int> nums;
int len = numStr.size();
for(int i=0;i<len;i++){
nums.push_back(numStr[len-i-1] - '0');
}
string res;
if(numStr=="0") res = "0";
else{
while(nums.size()){
res += to_string(nums[0] % 2);
nums = div(nums,2);
}
}
reverse(res.begin(),res.end());
cout<<res<<endl;
}
}
更多推荐



所有评论(0)