用C语言写出代码十六进制字符串转十进制负整数PTA
时间: 2023-11-29 15:06:33 浏览: 94
以下是用C语言实现将十六进制字符串转换为十进制负整数的代码:
```c
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
char hex_str[100];
int len, i, dec_num = 0;
printf("请输入一个十六进制字符串:\n");
scanf("%s", hex_str);
len = strlen(hex_str);
for(i = 0; i < len; i++){
int digit;
if(hex_str[i] >= '0' && hex_str[i] <= '9'){
digit = hex_str[i] - '0';
}
else if(hex_str[i] >= 'a' && hex_str[i] <= 'f'){
digit = hex_str[i] - 'a' + 10;
}
else if(hex_str[i] >= 'A' && hex_str[i] <= 'F'){
digit = hex_str[i] - 'A' + 10;
}
dec_num += digit * pow(16, len-i-1);
}
printf("转换后的十进制数为:%d\n", -dec_num);
return 0;
}
```
该代码将用户输入的十六进制字符串转换为十进制数,并输出其负值。使用了循环和条件语句来解析字符串中的每个字符,并使用pow函数计算每个位的权值。最终计算出的十进制数取负值后输出。
阅读全文