c++中,十进制正整数转成十六进制字符串输出
时间: 2023-05-31 11:07:37 浏览: 147
可以使用sprintf函数将十进制正整数转换成十六进制字符串输出,具体代码如下:
```
int num = 1234; // 十进制正整数
char hex[10]; // 存放转换后的十六进制字符串
sprintf(hex, "%x", num); // 将十进制正整数转换成十六进制字符串
printf("%s\n", hex); // 输出十六进制字符串
```
输出结果为:
```
4d2
```
相关问题
用C++将十六进制字符串转换成十进制整数
可以使用C++标准库中的`std::stoi`函数将十六进制字符串转换为十进制整数。具体步骤如下:
1. 包含头文件`<string>`。
2. 调用`std::stoi`函数,第一个参数为需要转换的十六进制字符串,第二个参数为指向转换后的整数的指针,第三个参数为指定转换的基数,这里应该传入16表示十六进制。
示例代码如下:
```c++
#include <iostream>
#include <string>
int main() {
std::string hex_str = "1a";
int decimal = std::stoi(hex_str, nullptr, 16);
std::cout << decimal << std::endl; // 输出26
return 0;
}
```
c++十六进制字符串转换成十进制整数代码
以下是将十六进制字符串转换为十进制整数的C++代码示例:
```c++
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int hexToDec(string hex) {
int decimal = 0;
int base = 1;
int len = hex.length();
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
decimal += (hex[i] - 48) * base;
base *= 16;
}
else if (hex[i] >= 'A' && hex[i] <= 'F') {
decimal += (hex[i] - 55) * base;
base *= 16;
}
else if (hex[i] >= 'a' && hex[i] <= 'f') {
decimal += (hex[i] - 87) * base;
base *= 16;
}
}
return decimal;
}
int main() {
string hex = "DEADBEEF";
int decimal = hexToDec(hex);
cout << hex << " in decimal is " << decimal << endl;
return 0;
}
```
这个函数将输入的十六进制字符串转换为十进制整数。函数的算法是将十六进制字符串中的每个字符转换为相应的数字,然后乘以16的幂次方,最后将所有数字相加得到结果。
在主函数中,我们将十六进制字符串"DEADBEEF"传递给hexToDec函数进行转换,并将结果打印出来。