将十六进制的字符串,转化为对应的十进制整形输出,c语言编程
时间: 2023-06-13 22:09:01 浏览: 84
可以使用`strtol`函数将十六进制字符串转换为十进制整数。
具体的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "1A"; // 十六进制字符串
char *endptr; // strtol函数的第三个参数,用来存储转换后的字符串剩余部分
long decimal_num = strtol(hex_str, &endptr, 16); // 将十六进制字符串转换为十进制整数
printf("%ld\n", decimal_num); // 输出十进制整数
return 0;
}
```
输出结果为:26,即十六进制数1A对应的十进制整数。
相关问题
QT中十六进制字符串转化为二进制字符串
可以使用QString的toByteArray()函数将十六进制字符串转化为二进制数据,再使用QByteArray的toHex()函数将二进制数据转化为十六进制字符串。
示例代码:
```cpp
QString hexStr = "FF00AA";
QByteArray hexData = QByteArray::fromHex(hexStr.toUtf8());
QString binaryStr;
for(int i = 0; i < hexData.size(); i++) {
binaryStr += QString("%1").arg(hexData.at(i), 8, 2, QChar('0'));
}
```
解释:
1. 定义十六进制字符串`hexStr`为"FF00AA"。
2. 将十六进制字符串转化为二进制数据,存储在`hexData`中。
3. 定义空的二进制字符串`binaryStr`。
4. 循环遍历`hexData`中的每个字节,将其转化为8位二进制字符串并拼接到`binaryStr`中。
5. 最终的二进制字符串为"111111110000000010101010"。
C语言将十六进制字符串转换为十六进制数组
可以使用C语言的`sscanf()`函数将十六进制字符串转换为十六进制数组。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char hex_str[] = "DEADBEEF";
int hex_array[4];
for (int i = 0; i < strlen(hex_str); i += 8) {
sscanf(hex_str + i, "%8X", &hex_array[i/8]);
}
for (int i = 0; i < 4; i++) {
printf("%X ", hex_array[i]);
}
return 0;
}
```
上面的示例代码将十六进制字符串"DEADBEEF"转换为一个包含4个十六进制数的数组。首先,在`for`循环中,每次从字符串中截取8个字符,并使用`sscanf()`函数将它们转换为一个十六进制数,并将其存储在数组中。最后,使用另一个`for`循环打印数组中的值。