c++把十六进制转换成int
时间: 2023-05-23 15:02:45 浏览: 117
可以使用 sscanf 函数将十六进制字符串转换成 int 类型,如下所示:
```c
char hex_str[] = "1A";
int num;
sscanf(hex_str, "%x", &num);
printf("%d\n", num); // 输出:26
```
其中,`%x` 是一个格式化字符串,表示解析一个十六进制数。`num` 是一个整数类型的变量,用于存储转换后的结果。
相关问题
使用c++将十六进制转换成十进制
可以使用 `std::stoi()` 函数将十六进制字符串转换为十进制整数。示例代码如下:
```cpp
#include <iostream>
#include <string>
int main() {
std::string hex = "1A";
int dec = std::stoi(hex, nullptr, 16);
std::cout << dec << std::endl; // 输出 26
return 0;
}
```
在 `std::stoi()` 函数中,第一个参数是要转换的字符串,第二个参数是用于存储转换后的整数的指针,第三个参数是指定字符串的进制,这里设置为 16 表示输入的是十六进制字符串。如果第二个参数为 `nullptr`,则函数会返回转换后的整数。
C++编写十六进制转换十进制
#include <stdio.h>
int main() {
char hex[100];
int decimal = 0, i = 0, j, digit;
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
// Find the length of the hexadecimal number
while(hex[i] != '\0') {
i++;
}
i--;
// Convert hexadecimal to decimal
for(j = 0; hex[j] != '\0'; j++) {
if(hex[j] >= '0' && hex[j] <= '9') {
digit = hex[j] - '0';
} else if(hex[j] >= 'a' && hex[j] <= 'f') {
digit = hex[j] - 'a' + 10;
} else if(hex[j] >= 'A' && hex[j] <= 'F') {
digit = hex[j] - 'A' + 10;
}
decimal += digit * pow(16, i);
i--;
}
printf("Decimal number: %d\n", decimal);
return 0;
}
阅读全文