bit_get(offset, lsb_first: true) -> Integer | nilRuby 4.1 から[permalink][rdoc][edit]-
0 から数えたビット位置
offsetのビットを0か1の整数で返します。offsetがselfの範囲を超える場合はnilを返します。既定では、各バイト内のビットは最下位ビット(LSB)から最上位ビット(MSB)の順に番号が付きます。
lsb_firstにfalseを指定すると、バイトの並び順はそのままに、各バイト内のビット番号だけが最上位ビット(MSB)から最下位ビット(LSB)の順になります。- [PARAM]
offset: - 取得するビットの位置を 0 から数えた整数で指定します。
- [PARAM]
lsb_first: -
バイト内のビットの番号の付け方を指定します。既定は
true(最下位ビットが 0 番目)です。falseを指定すると最上位ビットが 0 番目になります。 - [RETURN]
-
offsetのビットが立っていれば1、立っていなければ0を返します。offsetがselfの範囲を超える場合はnilを返します。 - [EXCEPTION]
IndexError: -
offsetが負の場合に発生します。 - [EXCEPTION]
ArgumentError: -
offsetがビット位置として表現できないほど大きい場合に発生します。 - [EXCEPTION]
ArgumentError: -
lsb_firstにtrue、false以外を指定した場合に発生します。
s = "\xAA".b # 0b10101010 p s.bit_get(0) # => 0 p s.bit_get(1) # => 1 p s.bit_get(8) # => nil p s.bit_get(0, lsb_first: false) # => 1 p s.bit_get(1, lsb_first: false) # => 0[SEE_ALSO] String#bit_set?, String#getbyte
- [PARAM]