请输入一个不含0的8位的十进制整数,编写程序取出该整数的中间4位数,分别输出取出的这4位数以及该4位数加上1024的得数。 输入:一个整数。 输出:两个整数,用空格分隔。(用C++)
时间: 2024-10-24 12:02:29 浏览: 33
给定一个十进制正整数N,程序输出从1到N的所有整数中,“1”出现的个数。DMU
5星 · 资源好评率100%
为了实现这个功能,你可以使用C++中的位运算符来提取并操作整数的中间四位。下面是一个简单的C++程序,可以完成上述任务:
```cpp
#include <iostream>
int main() {
int input;
std::cout << "请输入一个不含0的8位的十进制整数: ";
std::cin >> input;
// 提取中间四位数(从第3位到第6位)
int mid四位数 = (input & 0x0F0F0F0F) >> 4; // 高4位移除最高4位,低4位移出最低4位
// 输出原始的中间四位数
std::cout << "原始的中间四位数: " << mid << std::endl;
// 中间四位数加1024
int afterAdding = mid + 0x0404; // 因为1024=10进制的1*2^10,所以转换为二进制是100000000,这里直接相加相当于+1024
// 输出加上1024后的结果
std::cout << "加上1024后的结果: " << afterAdding << std::endl;
return 0;
}
```
在这个程序中,我们首先获取输入的整数,然后通过位与(AND)操作与0x0F0F0F0F(十六进制的15151515,即二进制的111100000000000000000000),并右移4位,得到中间的四位数。最后,我们将这四个数字加上1024(等于0x0404),然后输出这两个值。
阅读全文