Ruby Tips!

RubyのTipsを紹介します

ビット演算を行う

Rubyでビット演算を行う演算子には以下がある。

演算子 意味
~(単項) ビット反転
& 論理積
| 論理和
^ 排他的論理和
>> 右ビットシフト
<< 左ビットシフト

以下はビット演算の例である。
ビットの表示には数値を2進数で整形して表示する - Ruby Tips!の方法を使っている。

def pb(i)
  printf("%08b\n", i & 0b11111111)
end

pb ~0b11110000 #=> 00001111
pb 0b11110000 & 0b00111100 #=> 00110000
pb 0b11110000 | 0b00111100 #=> 11111100
pb 0b11110000 ^ 0b00111100 #=> 11001100
pb 0b11110000 << 3 #=> 10000000
pb 0b11110000 >> 3 #=> 00011110