#P8164. 【CSP第一轮】day1 3.位运算(ok)
【CSP第一轮】day1 3.位运算(ok)
01 #include < iostream >
02
03 using namespace std;
04
05 int main()
06 {
07 unsigned short x, y;
08 cin >> x >> y;
09 x = (x | x << 2) & 0x33;
10 x = (x | x << 1) & 0x55;
11 y = (y | y << 2) & 0x33;
12 y = (y | y << 1) & 0x55;
13 unsigned short z = x | y << 1;
14 cout << z << endl;
15 return 0;
16 }
假设输入的 x、y 均是不超过 15 的自然数,完成下面的判断题和单选题:
- [2 分]删去第 7 行与第 13 行的 unsigned,程序行为不变。( {{ select(1) }} )
- 正确
- 错误
- [2 分]将第 7 行与第 13 行的 short 均改为 char,程序行为不变。( {{ select(2) }} )
- 正确
- 错误
- [2 分]程序总是输出一个整数"0"。( {{ select(3) }} )
- 正确
- 错误
- [2 分]当输入为"2 2"时,输出为"10"。( {{ select(4) }} )
- 正确
- 错误
- [2 分]当输入为"2 2"时,输出为"59"。( {{ select(5) }} )
- 正确
- 错误
- [2 分]当输入为"13 8"时,输出为( {{ select(6) }} )。
- "0"
- "209"
- "197"
- "226"
- [2 分]一个字长为8位的整数的补码是11111001,则它的原码是( {{ select(7) }} ).
- 00000111
- 01111001
- 11111001
- 10000111
- [2 分]为了统计一个非负整数的二进制形式中 1 的个数,代码如下:
int CountBit(int x)
{
int ret = 0;
while (x)
{
ret++;
___________;
}
return ret;
}
则空格内要填入的语句是( {{ select(8) }} )。
- x >>= 1
- x &= x - 1
- x |= x >> 1
- x <<= 1
- [2 分]二进制数11 1011 1001 0111和01 0110 1110 1011进行按位与运算的结果是( {{ select(9) }} )。 (原题为"逻辑与",但是根据题意应当是按位与。)
- 01 0010 1000 1011
- 01 0010 1001 0011
- 01 0010 1000 0001
- 01 0010 1000 0011