Class: Floatboat::Converter
- Inherits:
-
Object
- Object
- Floatboat::Converter
- Defined in:
- lib/floatboat/converter.rb
Class Method Summary collapse
- .binary_mantissa_to_decimal(binary_mantissa) ⇒ Object
- .from_bits(bitstring) ⇒ Object
- .to_bits(float) ⇒ Object
Class Method Details
.binary_mantissa_to_decimal(binary_mantissa) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/floatboat/converter.rb', line 12 def self.binary_mantissa_to_decimal(binary_mantissa) explicit_mantissa = "1.#{binary_mantissa}" int, fraction = explicit_mantissa.split(".") minus = int.delete!("-") dec = (minus ? "-" : "") + int.to_i(2).to_s if fraction dec << (fraction.to_i(2) / 2.0**(fraction.size)).to_s[1..-1] else dec << ".0" end end |
.from_bits(bitstring) ⇒ Object
8 9 10 |
# File 'lib/floatboat/converter.rb', line 8 def self.from_bits(bitstring) [bitstring].pack('B*').unpack('G').first end |
.to_bits(float) ⇒ Object
3 4 5 6 |
# File 'lib/floatboat/converter.rb', line 3 def self.to_bits(float) float_as_bytes = [float].pack('G').bytes float_as_bytes.map { |n| "%08b" % n }.join end |