原码--转--反码--补码
#include <bits/stdc++.h>
using namespace std;
int main(){
string a;
cin>>a;
int n=a.size();
if(a[0]=='0'){
cout<<a;
}else{
for(int i=1;i<=a.size();i++){
if(a[i]=='1'){
a[i]='0';
}else {
a[i]='1';
}
}
cout<<"反--"<<a<<endl;
}
if(a[n-1]=='0'){
a[n-1]='1';
}else if(a[n-1]=='1'){
for(int i=n-1;i>0;i--){
if(a[i]=='1'){
a[i]='0';
}else if(a[i]=='0'){
a[i]='1';
break;
}
if(i==1){
if(a[i-1]=='0'){
a[i-1]='1';
}else if(a[i-1]=='1'){
a="1"+a;
}
}
}
}
cout<<"补--"<<a;
return 0;
}

浙公网安备 33010602011771号