Luaライブラリ 要注意点 ~ビット演算ライブラリ~

5.1⇒5.2⇒5.3ところころ変遷したビット演算

ビット演算子の要望は、Lua5.1のころから大きくなってきましたが、
仕様が2転、3転しました。

Lua5.1にはビット演算子が存在しない

LUA5.1にはビット演算を行う標準的なライブラリも存在しなかった。

Lua5.2でbit32というライブラリが導入された

LUA5.2にて初めてライブラリとして導入された形となる。
(※Lua5.1にLua5.2とそっくりなライブラリを実装するには、Luaで良く作る関数 ~bit32編~)

Lua5.3でbit32ライブラリが消えて、ビット演算子が導入された

結局は関数ではなく、一般的な汎用言語同様、ビット演算子を使った方が見やすい、ということで落ち着いたようです。

このように2転、3転してしまい、ビット演算に関しては混乱期があったことは、否定できないところでしょう。
結局は5.3で「ビット演算子」を導入することで、他言語と同じような決着を見た、
ということのようです。

bit32系で複数の可変長を扱えるもの

  • bit32.band
  • bit32.bor
  • bit32.btest
  • bit32.bxor
    の引数は可変長で複数の値を同時に演算することができます。
    bit32.band(15,6,3)  --> ビット演算子でいう 15 & 6 & 3 ⇒ 2
    
    bit32.bandとbit32.btestの違いは、
    前者は演算結果の数値を返すのに対し、後者は演算結果の数値が0ならばfalseを0以外ならばtrueを返す、という点です。

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-27 (水) 15:42:56 (847d)