我有一个7位十六进制值,如此
id =“0x04 0xDD 0x02 0x82 0x43 0x2F 0x84”
我需要在actionscript
中将其转换为正确的uint值首先我删除前导'0x'和空格,留下我
id =“04DD0282432F84”
那么只是使用内置的parseInt方法吗?
我的uint值= parseInt(id,radix);
如何确定第二个基数应该是什么?
答案 0 :(得分:1)
不,不幸的是,并非那么简单。
你应该注意的几个关注点:
" 7位" (7字节)十六进制值对于AS3 uint
来说太大了。 uint
仅支持32位值,与您类似的值将需要7字节* 8位/字节= 56位。偶数Number
只能处理多达53位的整数。您需要将其存储在一对uint
中,或以不同的方式解决问题。
由于您分别接收十六进制字节,因此它们看起来更像是字节序列而不是数字。你确定他们的字节顺序吗?有许多不同的方法可以将数值存储为一系列字节。有些人把较高的价值放在开头,有些放在最后,有些甚至比这更复杂。
最终,一旦你确定你有正确的字节顺序,你将不得不从前3-4个字节中拆分前3-4个字节,并将每个字节分成单独的uint
,然后跟踪哪一个代表数字的大部分,哪个代表数字的较小部分。根据您需要对值进行的操作,这可能会使其他事情变得更加复杂(即,如果您需要使用数字进行数学运算)。
如果你真的需要走这条路,你可能想要使用任意大小的#34;整数实现,如下所示:
http://as3asclublib.googlecode.com/svn-history/r29/trunk/data/BigInt.as