class Integer

www.ruby-forum.com/t/question-about-hex-signed-int/125510/4 machine bit length:

machine_byte_length = ['foo'].pack('p').size
machine_bit_length = machine_byte_length * 8

Public Instance Methods

to_signed(bit_length) click to toggle source
# File lib/scale.rb, line 95
def to_signed(bit_length)
  unsigned_mid = 2 ** (bit_length - 1)
  unsigned_ceiling = 2 ** bit_length
  (self >= unsigned_mid) ? self - unsigned_ceiling : self
end
to_unsigned(bit_length) click to toggle source
# File lib/scale.rb, line 101
def to_unsigned(bit_length)
  unsigned_mid = 2 ** (bit_length - 1)
  unsigned_ceiling = 2 ** bit_length 
  if self >= unsigned_mid || self <= -unsigned_mid
    raise "out of scope"
  end
  return unsigned_ceiling + self if self < 0
  self
end