文章
40
粉丝
607
获赞
68
访问
419.3k
#include <iostream>
using namespace std;
int main()
{
int a, b, a1, a2;
while (cin >> a >> b) {
int flag = 0;//设立标志位
if (a == b)
flag = 1;
else
for (int i = 1; i < 16; i++) {
a1 = a << i;//左移i位(低位用0填充)
a2 = a >> (16 - i);//右移16-i位(高位用0填充)
if ((a1 | a2) == b) {//按位或(有1为1否则为0)并判断是否相等
flag = 1;
break;
}
}
cout << (flag == 1 ? "YES" : "NO") << endl;
}
return 0;
}
位运算
位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。
位运算符有:
&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
其中,按位取反运算符是单目运算符,其余均为双目运算符。
位运算符的优先级从高到低,依次为~、&、^、|,
其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符。
&n...
登录后发布评论
暂无评论,来抢沙发