基本运算5-位运算

提交数: 345, 通过率: 13.33%, 平均分: 61.42

题目描述:

所谓位运算,就是指在二进制下,按位进行与(&)、或(|)、非(~)、异或(^)、左移(<<)、右移(>>)的操作。

与(&)、或(|)、异或(^)运算需要两个运算数,按二进制位进行运算时,1当true,0为false进行运算,如:

5(101) &  7 (111)  =  5 (101)

左移1位,相当于乘2(因为所有的数在电脑中以二进制形式存储的),右移1位,相当于除2,如:x=1<<4;  x的值为16。

位运算,速度快,同时使用与、或等运算,可以查看某个数在二进制下某一位的具体值,如:判断x在二进制下倒数第3位是不是为1,y=x & 1<<2,y>0则倒数第3位为1,否则为0。

现在给定一些位运算的表达式,求其值。

输入格式:

第1个数为1,后跟一个位运算表达式(只包含一个位运算符)。

第1个数为2,后跟两个数x,y,求x数在二进制下右起第y位是不是为1,是输出yes,否则输出no。

第1个数为3,后跟两个数x,y,求x数在二进制下把右起第y位置1,并输出x。

第1个数为4,后跟两个数x,y,求x数在二进制下把右起第y位置0,并输出x。

第1个数为5,后跟两个数x,y,求x数在二进制下把x左移y位。

第1个数为6,后跟一个数x,判断x是不是为2的n次方的数,若是输出yes,否则输出no。

输出格式:

 一行,表示运算后的结果。

样例输入:

样例1:
1 5&7

样例2:
2  15  3

样例3:
3  11  3

样例4:
5  10  4

样例5:
6  9

样例输出:

样例1:
5

样例2:
yes

样例3:
15

样例4:
160

样例5:
no

提示:

要求全部用位运算符完成。

异或运算,相同的为false,相异的为true。

时间限制: 1000ms
空间限制: 256MB

来源: 原创