从键盘上输入一个长整型数,判断该长整型数的高16位所表示的有符号数及低16位所表示的有符号数的奇偶性。(
时间: 2023-05-30 13:05:37 浏览: 44
假设输入的长整型数为x,则可以使用位运算符将其高16位和低16位分离出来:
```c++
long long x;
cin >> x;
int high = (x >> 48) & 0xFFFF; // 高16位
int low = x & 0xFFFF; // 低16位
```
其中,右移操作符`>>`将x的二进制表示向右移动48位,即将高16位移到最低位,然后按位与操作符`&`和一个16位的掩码`0xFFFF`,将高16位和低16位分别提取出来。
接下来,判断高16位和低16位的奇偶性,可以使用取模运算符`%`:
```c++
if (high % 2 == 0) {
cout << "高16位为偶数" << endl;
} else {
cout << "高16位为奇数" << endl;
}
if (low % 2 == 0) {
cout << "低16位为偶数" << endl;
} else {
cout << "低16位为奇数" << endl;
}
```
如果取模运算的结果为0,则表示该数为偶数,否则为奇数。完整代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
long long x;
cin >> x;
int high = (x >> 48) & 0xFFFF; // 高16位
int low = x & 0xFFFF; // 低16位
if (high % 2 == 0) {
cout << "高16位为偶数" << endl;
} else {
cout << "高16位为奇数" << endl;
}
if (low % 2 == 0) {
cout << "低16位为偶数" << endl;
} else {
cout << "低16位为奇数" << endl;
}
return 0;
}
```