c语言用switch16转10,用C语言编程实现10进制数值转16进制字符串
时间: 2024-03-26 21:41:30 浏览: 83
C语言16 转10进制
3星 · 编辑精心推荐
对于第一个问题,以下是C语言中使用switch语句将16进制转换为10进制的代码:
```c
#include <stdio.h>
int main() {
char hex[10];
int decimal = 0;
int i = 0;
printf("请输入一个16进制数:");
scanf("%s", hex);
while(hex[i] != '\0') {
int temp = 0;
if(hex[i] >= '0' && hex[i] <= '9') {
temp = hex[i] - '0';
} else if(hex[i] >= 'a' && hex[i] <= 'f') {
temp = hex[i] - 'a' + 10;
} else if(hex[i] >= 'A' && hex[i] <= 'F') {
temp = hex[i] - 'A' + 10;
} else {
printf("输入不合法!");
return 0;
}
decimal = decimal * 16 + temp;
i++;
}
printf("转换后的10进制数为:%d", decimal);
return 0;
}
```
对于第二个问题,以下是C语言中将10进制数值转换为16进制字符串的代码:
```c
#include <stdio.h>
#include <string.h>
char* decimalToHex(int decimal) {
static char hex[10];
int i = 0;
while(decimal > 0) {
int remainder = decimal % 16;
if(remainder < 10) {
hex[i] = remainder + '0';
} else {
hex[i] = remainder + 'A' - 10;
}
decimal /= 16;
i++;
}
hex[i] = '\0';
strrev(hex);
return hex;
}
int main() {
int decimal;
printf("请输入一个10进制数:");
scanf("%d", &decimal);
char* hex = decimalToHex(decimal);
printf("转换后的16进制数为:%s", hex);
return 0;
}
```
以上两个代码片段可供参考,但也需要根据实际情况进行修改和完善。
阅读全文