*Luaライブラリ 要注意点 ~ビット演算ライブラリ~ [#d3df91d8]

**5.1⇒5.2⇒5.3ところころ変遷したビット演算 [#d5cd1e1b]
>ビット演算子の要望は、Lua5.1のころから大きくなってきましたが、~
仕様が2転、3転しました。
**Lua5.1にはビット演算子が存在しない [#m3cacf31]
>LUA5.1にはビット演算を行う標準的なライブラリも存在しなかった。~
~
**Lua5.2でbit32というライブラリが導入された [#r1e1bdf9]
>LUA5.2にて初めてライブラリとして導入された形となる。~
(※Lua5.1にLua5.2とそっくりなライブラリを実装するには、[[Luaで良く作る関数 ~bit32編~>Lua implements_func_bit32]])~
~
**Lua5.3でbit32ライブラリが消えて、ビット演算子が導入された [#xb9221bc]
>結局は関数ではなく、一般的な汎用言語同様、ビット演算子を使った方が見やすい、ということで落ち着いたようです。

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

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

トップ   差分 履歴 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS