c - 在 C 中,如何将 char* 转换为 hex

标签 c char hex

我已将 MAC 地址提取到 char* 数组中,这样数组的每个部分都是一对 char 值。

mac[0] = "a1"
mac[1] = "b2"
...
mac[5] = "f6"

基本上我需要获取 char 数组并将它们转换为 unsigned char,以便十六进制表示与原始 char 值相同。

a1 in ascii -> 0xa1

在 C 中将 char* 转换为 hex 的最佳方法是什么?

最佳答案

我的 C 不是最好的,但是可以使用 strtol(start, [stop], base)

#include <stdlib.h>
#include <stdio.h>

int main(char ** argv, int argc) {
  char * input = "a1";
  printf("%d\n", (unsigned char)strtol(input, NULL, 16));
}

关于c - 在 C 中,如何将 char* 转换为 hex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9857878/

相关文章:

c - 将另一个文件中的函数添加到项目需要修改 makefile 吗?

c++ - 如何推送字符数组?

java - 尝试在整数后添加字符然后打印结果时出现奇怪的结果

Java:将二进制转换为十六进制时出现 NumberFormatException

c - 在一个语句中输出多个 post 和 pre increments

通过mmap分配的内存是否可以覆盖数据段

C - pthread_join() 挂起(有时)

c - 如何将一个字符追加到数组中并将其标记化 C

lua - 十进制到十六进制转换器 Lua

c# - 将哈希值转换为十六进制字符串