cpp怎么把一个四位数反过来
时间: 2024-09-22 10:07:56 浏览: 29
在C++中,反转一个四位数(即数字顺序从千位到个位)可以使用位运算技巧,因为每一位的值都是独立的。这里提供一种简单的方法:
```cpp
#include <iostream>
int reverseNumber(int num) {
// 使用位运算,将十进制数转换成十六进制,然后翻转,再转换回十进制
unsigned int reversed = static_cast<unsigned int>(num);
reversed = ((reversed & 0xff00) >> 8) | ((reversed & 0x00ff) << 8);
return static_cast<int>(reversed);
}
int main() {
int input;
std::cout << "请输入一个四位数: ";
std::cin >> input;
// 检查输入是否为四位数
if(input >= 0 && input <= 9999) {
int reversedNum = reverseNumber(input);
std::cout << "反转后的四位数是: " << reversedNum << std::endl;
} else {
std::cerr << "输入错误,必须是四位数。" << std::endl;
}
return 0;
}
```
这个程序首先将输入的整数转换为无符号类型,然后使用位与(&)操作符与0xff00(表示四位数的最高两位)和0x00ff(表示最低两位),然后分别右移8位和左移8位,实现了数值的反转。最后,再将结果转换回有符号整数。