string a;
cin >> a;  // 1010
int x = 0;
// 先转成10进制数字
for(int i = 0; i < a.size(); i++){
    x += ((a[i]-'0') << (a.size()-i-1));
}
int revnum;
// 对每一位取反
for(int i = 0; i < a.size(); i++){
    
    revnum = x ^ (1 << i);
    cout << revnum << endl;
}                
                
对二进制的每一位分别取反(某一位)
阅读 40
2022-06-27
string a;
cin >> a;  // 1010
int x = 0;
// 先转成10进制数字
for(int i = 0; i < a.size(); i++){
    x += ((a[i]-'0') << (a.size()-i-1));
}
int revnum;
// 对每一位取反
for(int i = 0; i < a.size(); i++){
    
    revnum = x ^ (1 << i);
    cout << revnum << endl;
}                
                
相关推荐
精彩评论(0)