原码--转--反码--补码

发布时间 2023-10-22 09:53:55作者: fushuxuan1
#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;
}