如何string str=“01”按位取反得到str=“10”
时间: 2023-11-06 07:04:11 浏览: 168
要将字符串 "01" 按位取反得到字符串 "10",可以按照以下步骤操作:
1. 将字符串 "01" 转换成二进制数,即 "00110001"。
2. 对二进制数的每一位进行按位取反操作,得到 "11001110"。
3. 将二进制数转换回字符串,即 "1100"。
可以使用以下代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
string bitwise_not(string str) {
string result = "";
for (int i = 0; i < str.size(); i++) {
result += (char)(~str[i] & 0xFF);
}
return result;
}
int main() {
string str = "01";
string result = bitwise_not(str);
cout << result << endl;
// 将二进制数转换回字符串
for (int i = 0; i < result.size(); i++) {
if (result[i] == '0') {
result[i] = '1';
} else {
result[i] = '0';
}
}
cout << result << endl;
return 0;
}
```
输出结果为:
```
1100
10
```
其中,bitwise_not() 函数实现了对字符串按位取反的操作,第一个输出结果为按位取反后的二进制数,第二个输出结果为将二进制数转换回字符串后得到的结果。
阅读全文