【发布时间】:2019-11-06 00:57:31
【问题描述】:
我正在研究这个将BitString 写入ByteArray 的AS3 代码。来源:JPGEncoder#writeBits()
private var byteout:ByteArray;
private var bytenew:int = 0;
private var bytepos:int = 7;
private function writeBits(bs:BitString):void
{
var value:int = bs.val;
var posval:int = bs.len-1;
while (posval >= 0) {
if (value & uint(1 << posval)) {
bytenew |= uint(1 << bytepos);
}
posval--;
bytepos--;
if (bytepos < 0) {
if (bytenew == 0xFF) {
writeByte(0xFF);
writeByte(0);
} else {
writeByte(bytenew);
}
bytepos=7;
bytenew=0;
}
}
}
但我不明白部分代码。
- 什么是
uint(1 << bytepos)? - if 条件
if (value & uint(1 << posval))是什么?- 我不知道
&是“and”位运算符,还是“and”条件。 - AS3 中的
if(number)是指if(number != 0)吗?
- 我不知道
这些 AS3 代码在 Java 中的等价物是什么?
【问题讨论】:
标签: java actionscript-3 actionscript