差分
ナビゲーションに移動
検索に移動
ビット演算
,編集の要約なし
'''ビット演算'''(bitwise operation)とは、複数の[[ビット]]に対して一斉に[[論理演算]]を行う演算操作である。
[[C言語]]の登場以降はあまり使われなくなったが、[[アセンブラ]]では[[演算]]どころか[[変数]]の初期化などで多用される。
メモリが貧弱だった時代は[[ゲーム]]のフラグ管理をビット単位で行っていたためよく使われた。最近ではフラグは可読性の高い[[連想配列]]にブチ込むのが普通なのであまり使われない。
最近の[[ゲーム]]だと[[シェーダー]]で[[ハッシュ]]を生成するのに使うくらいじゃね。
int ix = (int)(position.x * 73856093);
int iy = (int)(position.y * 50000059);
int iz = (int)(position.z * 83492791);
float2 uv = (ix ^ iy ^ iz) * 0.0001f;
[[C言語]]の登場以降はあまり使われなくなったが、[[アセンブラ]]では[[演算]]どころか[[変数]]の初期化などで多用される。
メモリが貧弱だった時代は[[ゲーム]]のフラグ管理をビット単位で行っていたためよく使われた。最近ではフラグは可読性の高い[[連想配列]]にブチ込むのが普通なのであまり使われない。
最近の[[ゲーム]]だと[[シェーダー]]で[[ハッシュ]]を生成するのに使うくらいじゃね。
int ix = (int)(position.x * 73856093);
int iy = (int)(position.y * 50000059);
int iz = (int)(position.z * 83492791);
float2 uv = (ix ^ iy ^ iz) * 0.0001f;