从键盘上输入一个长整型数,判断该长整型数的高16位所表示的有符号数及低16位所表示的有符号数的奇偶性。(
时间: 2023-05-30 11:05:36 浏览: 44
假设输入的长整型数为num。
高16位所表示的有符号数可以通过将num右移16位得到,即:
signed short high = (signed short)(num >> 16);
低16位所表示的有符号数可以通过将num强制类型转换为signed short类型得到,即:
signed short low = (signed short)num;
判断奇偶性可以用取模运算,如果余数为0则为偶数,否则为奇数。代码如下:
if(high % 2 == 0) {
printf("高16位为偶数\n");
} else {
printf("高16位为奇数\n");
}
if(low % 2 == 0) {
printf("低16位为偶数\n");
} else {
printf("低16位为奇数\n");
}
相关问题
从键盘上输入一个长整型数,判断该长整型数的高16位所表示的有符号数及低16位所表示的有符号数的奇偶性
可以使用位运算来判断一个长整型数的高16位和低16位的奇偶性。具体做法是将该数的高16位和低16位分别与0x8000进行按位与运算,如果结果为0,则表示该位为偶数,否则为奇数。以下是示例代码:
```c++
#include <iostream>
using namespace std;
int main()
{
long long num;
cin >> num;
int high = (num >> 48) & 0xFFFF;
int low = num & 0xFFFF;
if ((high & 0x8000) == 0)
cout << "高16位为偶数" << endl;
else
cout << "高16位为奇数" << endl;
if ((low & 0x8000) == 0)
cout << "低16位为偶数" << endl;
else
cout << "低16位为奇数" << endl;
return 0;
}
```
注意,这里使用了long long类型来存储输入的长整型数,因为long long类型可以存储64位整数,而long类型只能存储32位整数。同时,需要使用位运算符号“>>”和“&”来获取高16位和低16位的值。
从键盘上输入一个长整型数,判断该长整型数的高16位所表示的有符号数及低16位所表示的有符号数的奇偶性。
以下是Python代码实现:
num = int(input("请输入一个长整型数:"))
high_16 = (num >> 16) # 右移16位,得到高16位
low_16 = (num & 0xFFFF) # 与0xFFFF按位与,得到低16位
if high_16 & 0x8000: # 判断符号位
high_16 = -((high_16 ^ 0xFFFF) + 1) # 取反加一得到负数
if low_16 & 0x8000:
low_16 = -((low_16 ^ 0xFFFF) + 1)
if high_16 % 2 == 0:
print("高16位表示的有符号数为偶数")
else:
print("高16位表示的有符号数为奇数")
if low_16 % 2 == 0:
print("低16位表示的有符号数为偶数")
else:
print("低16位表示的有符号数为奇数")