小韦老师@神犇营-my0053-模拟二进制按位运算
作者:互联网
小韦老师@神犇营-my0053-模拟二进制按位运算
题目:
描述
给出两个二进制数,求其按位与、按位或、按位异或的结果。
输入
输入仅一行,为两个长度为 4 的二进制数字,用空格隔开。
输出
输出为三行。第一行输出按位与的结果(二进制形式),第二行输出按位或的结果(二进制形式),第三行输出按位异或的结果(二进制形式) 。
输入样例
0010 1101
输出样例
0000
1111
1111
题解:
破题:
题目标题为模拟二进制按位运算,所以不需要关注什么几进制,因为输入的数据只会有 0 和 1,只要拿到输进来的数的每一位,然后按位进行运算,将运算结果输出来即可。
思路:
因为要取得两个数的每一位,所以可以选择字符型的变量来存储输进来的数,故先定义 8 个 char 型的变量:
char a1, a2, a3, a4;
char b1, b2, b3, b4;
再定义 4 个 char 型的变量存储运算结果:
char c1, c2, c3, c4;
输入两个数,即 8 个 char 型的变量:
cin >> a1 >> a2 >> a3 >> a4;
cin >> b1 >> b2 >> b3 >> b4;
先模拟位与运算,位与运算的规则对于每一位而言,两个都是 1,结果才为 1,否则为 0:
c1 = (a1 == '1' && b1 == '1')? '1':'0';
c2 = (a2 == '1' && b2 == '1')? '1':'0';
c3 = (a3 == '1' && b3 == '1')? '1':'0';
c4 = (a4 == '1' && b4 == '1')? '1':'0';
输出结果:
cout << c1 << c2 << c3 << c4 << endl;
再模拟位或运算,位或运算的规则对于每一位而言,两个都是 0,结果才为 0,否则为 1:
c1 = (a1 == '0' && b1 == '0')? '0':'1';
c2 = (a2 == '0' && b2 == '0')? '0':'1';
c3 = (a3 == '0' && b3 == '0')? '0':'1';
c4 = (a4 == '0' && b4 == '0')? '0':'1';
输出结果:
cout << c1 << c2 << c3 << c4 << endl;
最后模拟位异或运算,位异或运算的规则对于每一位而言,两个相同则为 0,否则为 1:
c1 = (a1 == b1)? '0':'1';
c2 = (a2 == b2)? '0':'1';
c3 = (a3 == b3)? '0':'1';
c4 = (a4 == b4)? '0':'1';
输出结果:
cout << c1 << c2 << c3 << c4 << endl;
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
char a1, a2, a3, a4;
char b1, b2, b3, b4;
char c1, c2, c3, c4;
cin >> a1 >> a2 >> a3 >> a4;
cin >> b1 >> b2 >> b3 >> b4;
// 按位与运算
c1 = (a1 == '1' && b1 == '1')? '1':'0';
c2 = (a2 == '1' && b2 == '1')? '1':'0';
c3 = (a3 == '1' && b3 == '1')? '1':'0';
c4 = (a4 == '1' && b4 == '1')? '1':'0';
cout << c1 << c2 << c3 << c4 << endl;
// 按位或运算
c1 = (a1 == '0' && b1 == '0')? '0':'1';
c2 = (a2 == '0' && b2 == '0')? '0':'1';
c3 = (a3 == '0' && b3 == '0')? '0':'1';
c4 = (a4 == '0' && b4 == '0')? '0':'1';
cout << c1 << c2 << c3 << c4 << endl;
// 按位异或运算
c1 = (a1 == b1)? '0':'1';
c2 = (a2 == b2)? '0':'1';
c3 = (a3 == b3)? '0':'1';
c4 = (a4 == b4)? '0':'1';
cout << c1 << c2 << c3 << c4 << endl;
return 0;
}
标签:b4,运算,my0053,小韦,b2,char,按位,&& 来源: https://blog.csdn.net/qq_31790997/article/details/91355874