プログラムで余りを出すときの高速な、小ネタ(2の倍数限定)

この間、Long型で16の余りを大量に処理が必要があったため

、割り算以外の方法を使用しました。(2の倍数限定)

 

●普通は割り算で以下の様に書くと思います

long num;

num = 30000000 % 16;

CPUの命令クロックは21くらいになると思います(多分)

 

●andを使用すると以下の様に書けます

long num;

num = 30000000 & 0x000f; //0x000f = 16-1

CPUの命令クロックは1くらいになると思います(多分)

 

以上 小ネタ