彩音 - Adobe AIR - 研究室:XION -Adobe AIR-laboratory
ビット単位演算子(ビット演算子)

ビット演算子とは、値を二進数に演算して計算を行うものである。各桁(ビット)ごとに値を比較したり、桁をシフトする演算を行う。ビット単位の論理演算では1がtrue、0がfalseとして論理演算を行う。

演算子 機能
| ビット単位の論理和
& ビット単位の論理積
~ ビット単位の否定
<< ビット単位の左へシフト
>> ビット単位の右へシフト
>>> ビット単位の符号なし右へシフト
^ ビット単位の排他的論理和
|= ビット単位の論理和をして代入
&= ビット単位の論理積をして代入
~= ビット単位で否定して代入
<<= ビット単位で左へシフトして代入
>>= ビット単位で右へシフトして代入
>>>= 単位の符号なし右へシフトして代入
^= ビット単位の排他的論理和をして代入

二進数における桁のシフトは2のn階乗で変化する。次のサンプルで使われているrgbToHex()はRGBの各色の値から0xFFFFFFの形式の16進数に変換する関数である。

例:RGBを16進数に変換する


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="270" height="210" initialize="init()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
private var r:uint = 128;
private var g:uint = 255;
private var b:uint = 32;
private var rgbHex:uint = rgbToHex(r,g,b);

private function init():void {
var container:UIComponent = new UIComponent();
addChild(container);
var circle:Sprite = new Sprite();
circle.graphics.beginFill(rgbHex);
circle.graphics.drawCircle(135, 105,40);
container.addChild(circle);
}
private function rgbToHex(r:uint, g:uint, b:uint):uint {
var rgb:uint;
var rgbHex:uint;
rgb = (r<<16)+(g<<8)+b;
rgbHex = Number("0x"+rgb.toString(16));
return rgbHex;
}

]]>
</mx:Script>
</mx:Application>

索引