【发布时间】:2014-01-01 00:20:26
【问题描述】:
假设我有一个长值 3074109543 我需要将其转换为十六进制,得到 b73b3067(32 位)。
我正在尝试以不超过 4 个字节的字符串格式表示这个十六进制值。
转换为字符串后,是否可以在第一个字节中表示b7,在第二个字节中表示3b,在第三个字节中表示30等等。 我正在研究 C++ 中的按位运算逻辑,并且可以想到任何足够有价值的东西。 请提出一些伪代码。
【问题讨论】:
-
查找将 int 转换为 char[4],例如 stackoverflow.com/questions/15858256/…
-
您不会同时获得每个字节 和 字符串格式的 2 位数字。您的数字表示中的每个字节已经 有两个数字(或者至少很有可能,无论如何)。如果您希望它采用字符串格式,您需要为每个
char支付一位数字的价格,从而有效地将所需的存储大小翻倍(不包括终止符)。 -
另外,3074109543/b73b3067 不适合 32 位长,除非您的意思是无符号长 :)
-
如何将字符串“b73b3067”放入“不超过 4 个字节”的字符串中?这么说已经有矛盾了。
标签: c++ bit-manipulation hex