Ruby 2.7.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Integerクラス > []
self[nth] -> Integer
[permalink][rdoc]self[nth, len] -> Integer
self[range] -> Integer
nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。
a = 0b11001100101010
30.downto(0) {|n| print a[n] }
# => 0000000000000000011001100101010
a = 9**15
50.downto(0) {|n| print a[n] }
# => 000101110110100000111000011110010100111100010111001
n[i] は (n >> i) & 1 と等価なので、負のインデックスは常に 0 を返します。
p 255[-1] # => 0
0b01001101[2, 4] #=> 0b0011
0b01001100[2..5] #=> 0b0011
0b01001100[2...6] #=> 0b0011
# ^^^^
self[nth]=bit (つまりビットの修正) がないのは、Numeric 関連クラスが immutable であるためです。