我想知道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的定义:
它声明它适用于32位有符号整数。
如果有人可以详细说明如何将整数转换为字符,那将会有所帮助。
编辑:它如何处理负整数?
例如,
test.writeInt(-11338743); // prints ÿRü
所以,
-11338743 = 0xFF52FC09
是正确的吗?
感谢。
答案 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);