使用C语言写16进制转10进制代码
时间: 2024-05-27 22:10:44 浏览: 37
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main() {
char hex[20];
printf("请输入一个16进制数: ");
scanf("%s", hex);
int len = strlen(hex);
int dec = 0;
for(int i=0; i<len; i++) {
char c = hex[i];
int n;
if(c >= '0' && c <= '9') {
n = c - '0';
} else if(c >= 'A' && c <= 'F') {
n = c - 'A' + 10;
} else if(c >= 'a' && c <= 'f') {
n = c - 'a' + 10;
} else {
printf("输入的不是16进制数\n");
return 1;
}
dec += n * pow(16, len-i-1);
}
printf("转换为10进制数为: %d\n", dec);
return 0;
}
相关问题
c语言代码16进制转换成10进制补码
以下是一个示例代码,可以将一个16进制数转换为10进制补码:
```c
#include <stdio.h>
int main()
{
int hex_num = 0x1234; // 16进制数
int dec_num = 0; // 转换后的10进制补码
// 如果最高位是1,说明是负数
if (hex_num & 0x8000) {
hex_num = ~(hex_num - 1); // 取反加1,得到补码表示的负数
dec_num = -hex_num; // 转换为负数
}
else {
dec_num = hex_num; // 无需转换,直接赋值
}
printf("0x%X in hex is %d in decimal.\n", hex_num, dec_num);
return 0;
}
```
需要注意的是,如果16进制数的最高位是1,表示它是一个负数,需要先将它转换为10进制补码表示的负数,然后再转换为负数表示的10进制数。
C语言中16进制转10进制和10进制转16进制的代码
1. 16进制转10进制
```c
#include <stdio.h>
int hexToDec(char hex[])
{
int len = 0, dec = 0;
while (hex[len] != '\0') {
len++;
}
for (int i = 0; i < len; i++) {
int num = 0;
if (hex[i] >= '0' && hex[i] <= '9') {
num = hex[i] - '0';
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
num = hex[i] - 'A' + 10;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
num = hex[i] - 'a' + 10;
}
dec = dec * 16 + num;
}
return dec;
}
int main()
{
char hex[100];
printf("请输入16进制数:");
scanf("%s", hex);
printf("16进制数 %s 转换成 10进制数为:%d\n", hex, hexToDec(hex));
return 0;
}
```
2. 10进制转16进制
```c
#include <stdio.h>
void decToHex(int dec)
{
char hex[100];
int i = 0;
while (dec > 0) {
int num = dec % 16;
if (num < 10) {
hex[i] = num + '0';
} else {
hex[i] = num - 10 + 'A';
}
dec /= 16;
i++;
}
printf("16进制数为:");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
printf("\n");
}
int main()
{
int dec;
printf("请输入10进制数:");
scanf("%d", &dec);
decToHex(dec);
return 0;
}
```
以上是C语言中16进制转10进制和10进制转16进制的代码,其中16进制数需要在程序中输入或输出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)