ビット単位演算子(ビット演算子)
ビット演算子とは、値を二進数に演算して計算を行うものである。各桁(ビット)ごとに値を比較したり、桁をシフトする演算を行う。ビット単位の論理演算では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>
索引
- オブジェクトとクラス
- コメント
- parent
- ステートメントの区切りと改行
- 大文字と小文字
- 変数
- 定数
- グローバル定数
- クラスの静的パブリック定数
- エスケープシーケンス
- 関数とメソッドの違い
- 「予約語」と「キーワード」
- 変数の型
- グローバル関数
- arguments オブジェクト
- ...(rest)パラメータ
- データ型のチェック:is、as、typeof
- ストリングを数値に変換
- 数値をストリングに変換する
- Application オブジェクトについて
- Document オブジェクトについて
- データ型の変換(キャスト)
- プリインクリメント、ポストインクリメント、プリデクリメント、ポストデクリメント
- 比較演算子
- 論理演算子
- ビット単位演算子(ビット演算子)
- XML演算子
- その他の演算子
- 三項演算子
- 「::」名前空間識別演算子
- 「[]」
- 「{}」
- 配列アクセス演算子「[]」
- 多次元配列
- Arrayクラスを使う
- 配列の値の個数を調べる length
- 配列の先頭/末尾に値を追加する/抜き取る:push() pop() unshift() shift()
- Spriteクラスに図形を描画する
- 配列の一部を切り出す slice(), splice()
- 配列を複製する slice()
- 配列を連結する concat()
- 配列を検索する indexOf() lastIndexOf()
- 配列の値を逆順に並べ替える reverse()
- 配列の値の並びをソートする sort()
- 配列を関数の結果でソートする
- 配列の要素がオブジェクトのとき、オブジェクトの値でソートする sortOn()
- 配列の値をストリングに変換する toString() join()
- 配列の値をチェックする some() every()
- 配列にフィルタをかけて新しい配列を作る filter()
- 配列の値を指定の関数で変換する map()
- 配列の値を使って指定のメソッドを実行する forEach()
- 配列のインデックスを順に取り出す
- インデックス番号やプロパティ名を順に取り出す for .. in
- 値を順に取り出す for each .. in
- グローバル座標、ローカル座標
- マウスの座標
- MouseEventクラスのイベント通知からマウスのローカル座標を取得する
- 点を扱う Pointクラス
- ベクトルの加算減算 add()、subtract()、distance()、equals()
- ベクトルの向きと大きさ interpolate()
- ベクトルの向きと大きさ normalize()
- ベクトルの向きと大きさ polar()
- 短形領域を扱う Rectangleクラス
- 短形領域の加算 union()
- 短形領域の減算 intersection()
- 短形領域の伸縮 inflate()、inflatePoint()
- 短形領域の衝突 containsPoint()、containsRect()、intersects()

