给定两个长度为n(n<=1000)的二值字符串,求按位与、或、异或运算的结果。
时间: 2024-02-27 09:56:03 浏览: 97
可以使用以下的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
int n; // 二值字符串长度
scanf("%d", &n);
char s1[n+1], s2[n+1]; // 二值字符串
scanf("%s %s", s1, s2);
char andResult[n+1], orResult[n+1], xorResult[n+1]; // 按位与、或、异或运算结果
for (int i = 0; i < n; i++) {
if (s1[i] == '1' && s2[i] == '1') {
andResult[i] = '1';
} else {
andResult[i] = '0';
}
if (s1[i] == '0' && s2[i] == '0') {
orResult[i] = '0';
} else {
orResult[i] = '1';
}
if (s1[i] == s2[i]) {
xorResult[i] = '0';
} else {
xorResult[i] = '1';
}
}
andResult[n] = orResult[n] = xorResult[n] = '\0'; // 结尾加上'\0',表示字符串结束
printf("按位与结果:%s\n", andResult);
printf("按位或结果:%s\n", orResult);
printf("按位异或结果:%s\n", xorResult);
return 0;
}
```
代码中,首先输入二值字符串长度n,然后输入两个二值字符串s1和s2。接着,使用循环遍历s1和s2,分别计算按位与、或、异或运算的结果,并存储在andResult、orResult、xorResult这三个字符数组中。最后,输出三个结果。
阅读全文