Ruby 4.1 リファレンスマニュアル

instance method IO::Buffer#bit_count

bit_count(offset = 0, length = nil) -> IntegerRuby 4.1 から[permalink][rdoc][edit]

バッファに含まれる、立っているビット(値が 1 のビット)の数を返します。

ポピュレーションカウント、あるいはハミング重みとも呼ばれます。

offsetlength を指定すると、バッファの一部の範囲だけを対象に数えます。

[PARAM] offset:
数える範囲の開始位置をバッファの先頭からのバイト数で指定します。省略した場合は 0 です。
[PARAM] length:
数える範囲の長さをバイト数で指定します。省略した場合は offset からバッファの終端までです。
[RETURN]
対象の範囲に含まれる、立っているビットの数を返します。
[EXCEPTION] ArgumentError:
offsetlength の合計がバッファのバイト数を超える場合に発生します。
p IO::Buffer.for("\xFF\x00\x0F").bit_count       # => 12
p IO::Buffer.for("\xFF\x00\x0F").bit_count(1, 2) # => 4

[SEE_ALSO] IO::Buffer#~, String#bit_count