题目:
想起了我那苦命的vhdl
代码:
string s(max(a.length(),b.length())+1,0);
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int c=0;
for(int i=0;i<a.length()||i<b.length();i++)
{
if(i>=a.length())
{
if(b[i]=='1'&&c==1)
{
s[i]='0';
}
else if(c==0&&b[i]=='0'){
c=0;
s[i]='0';
}
else{
c=0;
s[i]='1';
}
}
else if(i>=b.length())
{
if(a[i]=='1'&&c==1)
{
s[i]='0';
}
else if(c==0&&a[i]=='0'){
c=0;
s[i]='0';
}
else{
c=0;
s[i]='1';
}
}
else {
if(a[i]=='1'&&b[i]=='1'){
s[i]=c+'0';
c=1;
}
else if(a[i]=='0'&&b[i]=='0')
{
s[i]=c+'0';
c=0;
}
else if(c==0)
{
s[i]='1';
c=0;
}
else{
s[i]='0';
}
}
}
s[s.length()-1]=c+'0';
reverse(s.begin(),s.end());
if(s[0]=='0') {
s=s.substr(1,s.length()-1);
}
cout<<s;