せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

2013-09-25から1日間の記事一覧

【Ruby】【アルゴリズム】ビット演算。掛け算しないで掛け算する。

掛け算・べき乗をビット演算で行っているサイトがあったので勉強。 掛け算を一回もしない掛け算 def shift_multi(x, y) m = 0 while x != 1 if x.even? y = (y << 1) # * 2 x = (x >> 1) # / 2 else m += y x -= 1 end end y += m end p shift_multi(15,3) …

【Ruby】【アルゴリズム】ビットカウント。最下位の1を倒していくVer。ループしないVer。

このサイトを参考に、 ビット演算の奥深さを勉強中。 レジスタ中の 1 になっているビット数を数えるアルゴリズム 最下位の1を倒していく def numofbits3 bits num = 0 while bits != 0 do num += 1 if (bits & (bits-1)) bits = bits & (bits-1) end num end…

【Ruby】【アルゴリズム】Rubyの最上位ビットはどこ? ビットカウントテーブルを使ってビットカウントの巻。

このサイトを参考に、 ビット演算の奥深さを勉強中。 レジスタ中の 1 になっているビット数を数えるアルゴリズム 今回はビットカウントテーブルを使う方法です。 Rubyでのビット符号って? Rubyの最上位ビット(MSB)はどこ? 右シフトは、符号ビット(最上位ビ…