c语言将整数中的数字翻转
时间: 2024-10-15 07:29:32 浏览: 25
在C语言中,将整数中的数字翻转通常需要借助一些临时变量或位操作来实现。这里提供两种常见的方法:
**方法一:数组存储中间结果**
1. 首先,将原数转换成字符数组存储每一位数字。
2. 然后,遍历数组,从右向左取出每一位并存入一个新的数组。
3. 最后,将新数组的内容连接起来形成新的整数。
```c
#include <stdio.h>
#include <string.h>
int reverseInt(int num) {
int rev = 0, remainder;
char temp[20];
sprintf(temp, "%d", num);
for (int i = strlen(temp) - 1; i >= 0; i--) {
remainder = temp[i] - '0';
rev = rev * 10 + remainder;
}
return rev;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Reversed Integer: %d\n", reverseInt(num));
return 0;
}
```
**方法二:位运算(适用于无符号整数)**
1. 利用位运算(移位操作),每次把最低位移动到最高位,并累加进结果。
2. 使用异或操作清除已处理位的值。
```c
#include <stdio.h>
unsigned int reverseInt(unsigned int num) {
unsigned int rev = 0;
while (num != 0) {
rev = rev << 1 | (num & 1); // 将最低位左移一位并加入结果
num >>= 1; // 移除最低位
}
return rev;
}
int main() {
unsigned int num;
printf("Enter an unsigned integer: ");
scanf("%u", &num);
printf("Reversed Integer: %u\n", reverseInt(num));
return 0;
}
```
阅读全文