#include <bits/stdc++.h> using namespace std; string a;int c=0; void fam(){ if(a[0]=='0'){ cout<<a; }else{ cout<<'1'; for(int i=1;i<a.size();i++){ if(a[i]=='0'){ cout<<'1'; }else{ cout<<'0'; } } } } int bu(){ if(a[0]=='0'){ cout<<a; }else{ for(int i=1;i<a.size();i++){ if(a[i]=='0'){ a[i]='1'; }else{ a[i]='0'; } } for(int i=0;i<a.size();i++){ if(a.substr(i,i+1)=="1"){ c=1; }else{ c=0; break; } } if(c==1){ cout<<"11"; for(int i=1;i<a.size();i++){ cout<<"0"; } return 0; }else{ for(int i=a.size()-1;i>=1;i--){ if(a[i]=='0'){ a[i]='1'; break; }else{ a[i]='0'; } } } cout<<a; } } int main(int argc, char** argv) { int b; cout<<"1 反码 2 补码"; cin>>b>>a; if(b==1){ fam(); }else if(b==2){ bu(); } return 0; }
标签:反码,cout,补码,else,fam,原码 From: https://www.cnblogs.com/As10016/p/17779934.html