1
正如标题所说,我对用C转换二进制字符串为十六进制字符串的最佳方式感兴趣。二进制字符串最多4位,因此转换为单个十六进制字符将会最好。将二进制字符串转换为十六进制字符串C
感谢您的帮助,我不确定是否有内置的内容可以让您更轻松地进行操作,因此我还没有尝试发布。
正如标题所说,我对用C转换二进制字符串为十六进制字符串的最佳方式感兴趣。二进制字符串最多4位,因此转换为单个十六进制字符将会最好。将二进制字符串转换为十六进制字符串C
感谢您的帮助,我不确定是否有内置的内容可以让您更轻松地进行操作,因此我还没有尝试发布。
您可以使用strtol
二进制字符串转换为整数,然后sprintf
到整数转换为十六进制字符串:
char* binaryString = "1101";
// convert binary string to integer
int value = (int)strtol(binaryString, NULL, 2);
// convert integer to hex string
char hexString[12]; // long enough for any 32-bit value, 4-byte aligned
sprintf(hexString, "%x", value);
// output hex string
printf(hexString);
输出:
d
如果它的保证是一个单一的十六进制字符只需要hexString[0]
。
你是什么意思的“最好”?最快的?最简单的代码? – samgak
@samgak对不起,最简单,没有非常差的表现明智。不要担心表现。谢谢 –
你的问题太广泛,不在话题上。 StackOverflow不是一种编码服务。 – 2501