【发布时间】:2010-05-13 08:56:07
【问题描述】:
我正在尝试使用整数作为字符串的数字表示,例如,将“ABCD”存储为 0x41424344。但是,在输出方面,我必须将整数转换回 4 个 ASCII 字符。现在,我正在使用位移和掩码,如下所示:
int value = 0x41424344;
string s = new string (
new char [] {
(char)(value >> 24),
(char)(value >> 16 & 0xFF),
(char)(value >> 8 & 0xFF),
(char)(value & 0xFF) });
有没有更清洁的方法来做到这一点?我尝试了各种强制转换,但编译器正如预期的那样抱怨它。
【问题讨论】:
-
如果您解释为什么您会这样做,我们可能会有更好的解决方案。
-
只需要支持ASCII还是需要考虑不同的编码?
-
是的,我的第一个想法就是:“亲爱的上帝,为什么???”
-
也许要编码一个 FourCC 标签?
-
这是在汇编程序中使用的,因此字符串的整数值被相当频繁地使用,但需要将其转换为字符串一次以创建可读的输出。这只会使用 ASCII。