我正在研究C语言。我想从控制台获取十六进制值。例如
argv[1] = "0xABCFFABC"
我想将值存储在一个无符号字符数组中,所以最后我想得到这样的结果:
unsigned char hex[4] = {0xAB, 0xCF, 0xFA, 0xBC}
然后我处理信息,我需要执行相反的过程:从十六进制值 {0xFF, 0xAB, 0x01, 0x0A}
转换为字符串 "0xFFAB010A"
???并在控制台上打印最终值。
最佳答案
对于 argv[1]
到 hex[4]
,您可以使用上面的 chux 方法,其中 argv[1]+2
作为buf
和 hex[0]
作为 byte1
等
从 hex[4]
到字符串并打印,可以按如下方式完成:
char string[2+4*2+1];
sprintf(string, "0x%02X%02X%02X%02X", hex[0], hex[1], hex[2], hex[3]);
printf("%s\n", string);
关于c - 从 C 控制台获取十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26248673/