Module: Pack::Numbers::VarIntBE
- Defined in:
- lib/pack/numbers.rb
Class Method Summary collapse
Class Method Details
.read(input) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/pack/numbers.rb', line 47 def self.read(input) byte = input.readbyte value = byte & 0x7f until byte < 0x80 byte = input.readbyte value = ((value + 1) << 7) | (byte & 0x7f) end value end |
.write(value) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/pack/numbers.rb', line 36 def self.write(value) bytes = [value & 0x7f] until (value >>= 7) == 0 value -= 1 bytes.push(0x80 | value & 0x7f) end bytes.reverse.pack("C*") end |