程序每次读入一个至少4位数的正整数,然后输出其后4位按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入57000,输出应该是7。用C语言写
时间: 2024-12-08 07:14:43 浏览: 81
在C语言中,你可以通过位操作来实现这个功能。这里是一个简单的函数示例,它接受一个整数作为参数,将其后四位取反,然后返回结果:
```c
#include <stdio.h>
// 函数声明,接收int并返回int
int reverseLastFour(int num);
int main() {
int input;
printf("请输入一个至少4位的正整数:");
scanf("%d", &input);
if (input >= 1000) { // 检查是否至少有四位
int result = reverseLastFour(input);
printf("逆序后的数字是:%d\n", result);
} else {
printf("输入的数字不足四位。\n");
}
return 0;
}
// 实现反转后四位的函数
int reverseLastFour(int num) {
// 取出最后四位(左移3位)
int lastFourBits = num << 3;
// 取反
int reversedBits = ~lastFourBits;
// 添加回原数的高位部分(&运算符用于与高位清零)
int result = num & 0xFFFC >> 2;
// 如果结果是负数,说明原数最高位为1且最后四位全为1,需要减去0x10000才能得到正确的结果
if (result < 0)
result -= 0x10000;
return result;
}
```
在这个程序中,`reverseLastFour`函数首先将输入的数字左移3位,然后对这四个位取反,并与高位部分合并,确保最后的结果不会因为前面的0而添加额外的0。
阅读全文
相关推荐











