代码1----->高精度加法
#include<iostream>
#include<vector>
using namespace std;
string s;
vector<int>b;
vector<int>a;
vector<int>res;
void add(){
int t=0;
for(int i=0;i<int(a.size());i++){
t+=a[i]+b[i];
res.push_back(t%2);
t/=2;
}
while(t){
res.push_back(t%2);
t/=2;
}
}
int main(){
cin>>s;
string ss=s+"0000";
s="0000"+s;
for(int i=int(s.size()-1);i>=0;i--){
a.push_back(s[i]-'0');
}
for(int i=int(ss.size()-1);i>=0;i--){
b.push_back(ss[i]-'0');
}
add();
for(int i=int(res.size()-1);i>=0;i--){
cout<<res[i];
}
return 0;
}
代码2------>高精度乘法
#include<iostream>
#include<vector>
using namespace std;
string s;
vector<int>temp;
vector<int>b;
vector<int>a;
vector<int>res;
/*
void second(int n){
while(n){
temp.push_back(n&1);
n>>=1;
}
for(int i=temp.size()-1;i>=0;i--){
b.push_back(temp[i]);
}
}
*/
void mul(int b){
int t=0;
for(int i=0;i<int(a.size());i++){
t+=a[i]*b;
res.push_back(t%2);
t/=2;
}
while(t){
res.push_back(t%2);
t/=2;
}
while(res.size()>1&&res.back()==0){
res.pop_back();
}
}
int main(){
cin>>s;
//second(17);
for(int i=int(s.size()-1);i>=0;i--){
a.push_back(s[i]-'0');
}
mul(17);//二进制*十进制,%2得数为二进制
for(int i=int(res.size()-1);i>=0;i--){
cout<<res[i];
}
return 0;
}