2016-10-14 232 views
1

正如标题所说,我对用C转换二进制字符串为十六进制字符串的最佳方式感兴趣。二进制字符串最多4位,因此转换为单个十六进制字符将会最好。将二进制字符串转换为十六进制字符串C

感谢您的帮助,我不确定是否有内置的内容可以让您更轻松地进行操作,因此我还没有尝试发布。

+0

你是什么意思的“最好”?最快的?最简单的代码? – samgak

+0

@samgak对不起,最简单,没有非常差的表现明智。不要担心表现。谢谢 –

+0

你的问题太广泛,不在话题上。 StackOverflow不是一种编码服务。 – 2501

回答

2

您可以使用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]

相关问题