ActionScript的writeInt如何与Integers一起使用?

时间:2012-05-15 06:48:18

标签: actionscript bytearray

我想知道writeInt如何处理传递给它的32位无符号整数或有符号整数?

很容易理解它如何使用十六进制数。 Util.Print将打印相应的ASCII字符。

0x41424344将分为4个1字节字符,A,B,C和D.

将整数传递给writeInt似乎有所不同。

例如,

var test: ByteArray = new ByteArray();
test.writeInt(0x41424344); // prints ABCD
test.writeInt(2590463591); // prints gVg
test.writeInt(1119885898);  // prints BÀJ

我不清楚Util.Print函数如何处理writeInt写入ByteArray的整数。

字符,gVg不对应整数,2590463591

根据writeInt的定义:

http://livedocs.adobe.com/livecycle/es/sdkHelp/common/langref/flash/utils/ByteArray.html#writeInt%28%29

它声明它适用于32位有符号整数。

如果有人可以详细说明如何将整数转换为字符,那将会有所帮助。

编辑:它如何处理负整数?

例如,

test.writeInt(-11338743); // prints ÿRü 

所以,

-11338743 = 0xFF52FC09

是正确的吗?

感谢。

1 个答案:

答案 0 :(得分:1)

如果将编码字节解释为ASCII

dec          hex          ascii
1094861636 = 0x41424344 = ABCD
2590463591 = 0x9A675667 = gVg
1119885898 = 0x42C01A4A = BÀJ

另外,请注意int vs unsigned int将实现不同的函数:

var test:ByteArray = new ByteArray();
test.writeInt(0x41424344);
test.writeUnsignedInt(0x41424344);