基本运算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
来源: 原创