16进制转10进制c++
时间: 2023-11-18 21:54:52 浏览: 166
可以使用C++中的标准库函数`stoi`将16进制字符串转换为10进制整数,然后再将整数转换为字符串输出。具体实现可以参考以下代码:
```
#include <iostream>
#include <string>
using namespace std;
int main() {
string hex_str;
while (cin >> hex_str) {
int dec_num = stoi(hex_str, nullptr, 16);
string dec_str = to_string(dec_num);
cout << dec_str << endl;
}
return 0;
}
```
相关问题
16进制转换10进制c++
十六进制是一种数制,其基数为16,可以使用0~9和A~F的字符表示数字。在C程序中,我们可以使用library中的stdlib.h头文件中的函数strtoul()来将十六进制字符串转换为十进制数。
例如,如果我们要将十六进制数字字符串 "1A" 转换为十进制,我们可以按照以下步骤操作:
1. 在程序中引入stdlib.h头文件。
2. 声明一个unsigned long long类型的变量值,用于存储转换后的十进制数字。
3. 调用strtoul()函数,该函数接受三个参数:要被转换的字符串、一个指向char类型的指针以及一个整数,例如10(要将字符串解释为十进制数)。该函数返回转换后的十进制数。
4. 将转换后的值存储在变量值中,并使用printf()函数将其打印出来,以便在控制台中查看结果。
下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "1A";
unsigned long long val;
val = strtoul(hex_str, NULL, 16);
printf("The decimal value of %s is %llu.\n", hex_str, val);
return 0;
}
以上代码将输出以下结果:
The decimal value of 1A is 26.
这表明,十六进制数字字符串 "1A" 在转换为十进制之后的值为 26。
16进制转10进制C++代码
以下是一个将 16 进制转换为 10 进制的 C++ 代码示例:
```cpp
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int hexToDec(string hex) {
int dec = 0;
int len = hex.length();
for (int i = 0; i < len; i++) {
char c = hex.at(i);
int num = 0;
if (c >= '0' && c <= '9') {
num = c - '0';
} else if (c >= 'a' && c <= 'f') {
num = c - 'a' + 10;
} else if (c >= 'A' && c <= 'F') {
num = c - 'A' + 10;
}
dec += num * pow(16, len - i - 1);
}
return dec;
}
int main() {
string hex = "1A";
int dec = hexToDec(hex);
cout << hex << " in decimal is: " << dec << endl;
return 0;
}
```
这个示例代码中,先定义了一个 `hexToDec` 函数,用于将 16 进制字符串转换为 10 进制数。在函数中,首先定义了一个 `dec` 变量,用于保存最终转换后的 10 进制数。然后使用一个循环,遍历 16 进制字符串中的每一位字符。对于每个字符,根据其大小写和数字范围,将其转换为对应的数值。最后使用 `pow` 函数计算出对应位数的权重,并将其乘以数值后累加到 `dec` 变量中。最终,函数返回 `dec` 变量。
在 `main` 函数中,定义了一个 `hex` 变量,用于保存要转换的 16 进制字符串。然后调用 `hexToDec` 函数将其转换为 10 进制数,并输出结果。
阅读全文