c语言实现十六进制的string 转hex
时间: 2023-10-04 17:10:51 浏览: 328
可以通过使用 sscanf 函数实现将十六进制的 string 转为 hex,示例如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str_hex[] = "FF0A";
unsigned int hex = 0;
sscanf(str_hex, "%X", &hex);
printf("Hex value: 0x%X\n", hex);
return 0;
}
```
在这个例子中,sscanf 函数的 "%X" 指定将待转换的 string 解析为十六进制数,将结果存储在 hex 变量中,最后通过 printf 函数输出 hex 的值,即可得到十六进制的数值。
相关问题
C语言实现十六进制数组转字符串
可以使用sprintf函数将十六进制数组转化为字符串。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
unsigned char hex_arr[] = {0xAB, 0xCD, 0xEF}; // 十六进制数组
int hex_len = sizeof(hex_arr)/sizeof(hex_arr[0]); // 数组长度
char str[2*hex_len + 1]; // 字符串数组
for (int i = 0; i < hex_len; i++) {
sprintf(str + 2*i, "%02X", hex_arr[i]); // 将十六进制数转化为两位十六进制字符串
}
str[2*hex_len] = '\0'; // 字符串结尾
printf("Hex Array: ");
for (int i = 0; i < hex_len; i++) {
printf("%02X ", hex_arr[i]);
}
printf("\n");
printf("String: %s\n", str);
return 0;
}
```
输出结果如下:
```
Hex Array: AB CD EF
String: ABCDEF
```
其中,sprintf函数的第一个参数为目标字符串,第二个参数为字符串格式,%02X表示输出两位十六进制大写字母,第三个参数为需要转化的十六进制数。
用C语言实现十六进制转十进制
以下是一个简单的C程序,用于将十六进制数转换为十进制数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char hex[20];
int dec = 0, base = 1, len, i;
printf("Enter a hexadecimal number: ");
fgets(hex, 20, stdin);
len = strlen(hex) - 1; //去除换行符
for (i = len - 1; i >= 0; i--)
{
if (hex[i] >= '0' && hex[i] <= '9')
{
dec += (hex[i] - '0') * base;
base *= 16;
}
else if (hex[i] >= 'A' && hex[i] <= 'F')
{
dec += (hex[i] - 'A' + 10) * base;
base *= 16;
}
else if (hex[i] >= 'a' && hex[i] <= 'f')
{
dec += (hex[i] - 'a' + 10) * base;
base *= 16;
}
}
printf("Decimal equivalent is: %d\n", dec);
return 0;
}
```
程序首先提示用户输入一个十六进制数,然后使用fgets函数读取用户输入的字符串。然后,程序使用一个循环来遍历字符串中的每个字符,并将其转换为十进制数。如果字符是数字(0-9),则将其转换为相应的十进制数。如果字符是字母(A-F或a-f),则将其转换为相应的十六进制数,并将其添加到总和中。最后,程序输出转换后的十进制数。
阅读全文
相关推荐














