Skip to content

End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

instance method

IO::Buffer#get_value

get_value(data_type, offset) → numeric

Read from buffer a value of type at offset. data_type should be one of symbols:

  • :U8: unsigned integer, 1 byte

  • :S8: signed integer, 1 byte

  • :u16: unsigned integer, 2 bytes, little-endian

  • :U16: unsigned integer, 2 bytes, big-endian

  • :s16: signed integer, 2 bytes, little-endian

  • :S16: signed integer, 2 bytes, big-endian

  • :u32: unsigned integer, 4 bytes, little-endian

  • :U32: unsigned integer, 4 bytes, big-endian

  • :s32: signed integer, 4 bytes, little-endian

  • :S32: signed integer, 4 bytes, big-endian

  • :u64: unsigned integer, 8 bytes, little-endian

  • :U64: unsigned integer, 8 bytes, big-endian

  • :s64: signed integer, 8 bytes, little-endian

  • :S64: signed integer, 8 bytes, big-endian

  • :f32: float, 4 bytes, little-endian

  • :F32: float, 4 bytes, big-endian

  • :f64: double, 8 bytes, little-endian

  • :F64: double, 8 bytes, big-endian

A data type refers specifically to the type of binary data that is stored in the buffer. For example, a :u32 data type is a 32-bit unsigned integer in little-endian format.

Example:

Example
string = [1.5].pack('f')
# => "\x00\x00\xC0?"
IO::Buffer.for(string).get_value(:f32, 0)
# => 1.5
See also #get_string #get_values #free #hexdump also in 4.1 · 4.0 · 3.4 · 3.3 · 3.1