Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method · added in Ruby 4.1

String#bit_set?

bit_set?(offset, lsb_first: true) → true, false, or nil

Returns true or false for whether the bit at zero-based bit offset is set:

Example
s = "\xAA" # 0b10101010
s.bit_set?(0) # => false
s.bit_set?(1) # => true

Returns nil if offset is beyond the end of self:

Example
s.bit_set?(8) # => nil

By default, bits within each byte are numbered from least-significant to most-significant. If lsb_first is false, byte order is unchanged but bits within each byte are numbered from most-significant to least-significant:

Example
s.bit_set?(0, lsb_first: false) # => true
s.bit_set?(1, lsb_first: false) # => false

Raises IndexError if offset is negative. Raises ArgumentError if offset is too large to be represented. Raises ArgumentError if lsb_first is neither true nor false.

Ruby version changes

  1. 4.1