十六进制转十进制c语言c++
时间: 2023-08-09 12:05:07 浏览: 117
在 C++ 中,可以使用 `std::stoi()` 函数将十六进制字符串转换为十进制整数。示例代码如下:
```c++
#include <iostream>
#include <string>
int main() {
std::string hex_str = "1A";
size_t end_pos;
long dec_num;
dec_num = std::stoi(hex_str, &end_pos, 16);
std::cout << "Hexadecimal string " << hex_str << " is equivalent to decimal number " << dec_num << std::endl;
return 0;
}
```
该程序将十六进制字符串 "1A" 转换为十进制整数 26,并输出结果。需要注意的是,`std::stoi()` 函数的第二个参数是用来返回处理完的字符串的位置的指针,第三个参数指定了字符串的基数,这里使用 16 表示字符串是十六进制形式的。
相关问题
十六进制转十进制C++怎么写
以下是将十六进制转换为十进制的C语言代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
char hex[20];
int dec = 0, i, digit;
printf("请输入一个十六进制数:");
scanf("%s", hex);
for (i = 0; hex[i] != '\0'; i++) {
if (hex[i] >= '0' && hex[i] <= '9') {
digit = hex[i] - '0';
}
else if (hex[i] >= 'a' && hex[i] <= 'f') {
digit = hex[i] - 'a' + 10;
}
else if (hex[i] >= 'A' && hex[i] <= 'F') {
digit = hex[i] - 'A' + 10;
}
dec += digit * pow(16, strlen(hex) - i - 1);
}
printf("十进制数为:%d\n", dec);
return 0;
}
```
该程序首先要求用户输入一个十六进制数,然后遍历该字符串中的每个字符,并将其转换为对应的十进制数。转换过程中,程序根据字符的 ASCII 码值判断其属于哪个数字或字母,并计算其对应的十进制值。最后,程序将所有十进制值相加,得到该十六进制数的十进制表示。
使用C++写一个十六进制转十进制的代码
以下是使用C语言编写的十六进制转十进制的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
char hex[17];
int i, len, dec = 0;
printf("请输入一个十六进制数:");
scanf("%s", hex);
len = strlen(hex);
// 从右往左遍历每一位,计算十进制值
for (i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - 48) * pow(16, len - i - 1);
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
dec += (hex[i] - 87) * pow(16, len - i - 1);
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 55) * pow(16, len - i - 1);
} else {
printf("输入的十六进制数不合法。\n");
return 0;
}
}
printf("转换后的十进制数为:%d\n", dec);
return 0;
}
```
代码思路:
1. 定义一个字符数组 `hex` 来存储输入的十六进制数;
2. 通过 `scanf` 函数从键盘读取输入的十六进制数;
3. 计算输入十六进制数的长度 `len`;
4. 从右往左遍历每一位,通过判断字符的 ASCII 码值,将其转换为对应的十进制值,并加到 `dec` 变量中;
5. 输出转换后的十进制数 `dec`。
阅读全文