これはハマる (暗黙の型変換)
/**
* Copyright beinteractive ( http://wonderfl.net/user/beinteractive )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/sdrS
*/
package
{
import flash.display.Sprite;
import com.bit101.components.Label;
public class FlashTest extends Sprite
{
public function FlashTest()
{
var label:Label = new Label(this);
// 論理積とって比較するとなぜか FALSE になる
var n:uint = 0xff000000;
if ((n & 0xff000000) == 0xff000000) {
label.text = 'TRUE';
}
else {
label.text = 'FALSE';
}
// 理由:
// (n & 0xff000000) == -16777216
// 0xff000000 == 4278190080
// つまりビット演算を行った段階で符号付き整数に
// 変換されているため等しくならない。
// 正しくは次のように比較しないと true にならない。
// uint(n & 0xff000000) == 0xff000000
}
}
}