【发布时间】:2015-03-01 20:32:28
【问题描述】:
我有一个由 24 位“000101011110011110101110”组成的字符串(或 cstring),应该用十六进制 (0x15e7ae) 表示。
据我了解,位串需要由 4 位拆分为 6 部分 “0001 0101 1110 0111 1010 1110” 然后将每个部分转换为十六进制
0001 -> 1
0101 -> 5
1110 -> e
0111 -> 7
1010 -> a
1110 -> e
那么将其转换为十六进制表示形式的最简单且具有成本效益的方法是什么:0x15e7ae?
对于我来说,使用 String 或 char[] 哪种字符串类型更好,我也有两难选择。使用 substring 函数可以轻松拆分字符串,但我不知道如何将字符串类型转换为十六进制。
相反,char[] 可以使用 strtoul 函数轻松转换为十六进制,但我没有找到简单的方法来拆分 char 字符串。
【问题讨论】:
-
您确定您的意思是“转换为十六进制”,因为
strtoul转换为unsigned long int;这种整数的十六进制表示可以由输出函数生成为字符串,例如sprintf或printf。您需要准确了解实际输入和所需输出。 -
我的意思是可以打印出来的十六进制表示,不管它是什么数据类型。
-
是的,但理想情况下,您需要在问题中明确说明,而不是在 cmets 中。
-
将对话更改为表示。现在没有双重含义