用c语言写一个代码,输入一个四位十六进制整数求反序
时间: 2024-11-07 09:29:01 浏览: 37
在C语言中,你可以通过将每一位转换成十进制数并逐个反转来实现一个四位十六进制整数的反序。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 函数来处理四位十六进制数的每一位
int hex_digit_to_decimal(char digit) {
if (digit >= '0' && digit <= '9') {
return digit - '0';
} else if (digit >= 'A' && digit <= 'F') {
return digit - 'A' + 10;
} else if (digit >= 'a' && digit <= 'f') {
return digit - 'a' + 10;
}
// 如果不是有效的十六进制字符,返回0
return 0;
}
// 主函数,接受十六进制字符串并输出其反序
void reverse_hexadecimal(const char *hex_input) {
int len = strlen(hex_input);
int reversed = 0;
for (int i = len - 1; i >= 0; i--) {
reversed = (reversed * 16) + hex_digit_to_decimal(hex_input[i]);
}
printf("Reversed hexadecimal number: %X\n", reversed);
}
int main() {
char hex[5]; // 存储四位十六进制数字
printf("Enter a four-digit hexadecimal number: ");
scanf("%s", hex);
// 检查输入是否合法
if (strlen(hex) == 4 && isxdigit(hex[0]) && isxdigit(hex[1]) && isxdigit(hex[2]) && isxdigit(hex[3])) {
reverse_hexadecimal(hex);
} else {
printf("Invalid input! Please enter a four-digit hexadecimal number.\n");
}
return 0;
}
```
这个程序首先接收用户输入的四位十六进制数,然后遍历每一位置换,并计算出逆序的结果。最后,它会打印出反向的十六进制数值。
阅读全文