class Numeric
Constants
- Roman
- RomanDigits
- RomanNumbers
- RomanToInteger
Public Instance Methods
to_bcd()
click to toggle source
# File lib/rdoba/bcd.rb, line 58 def to_bcd # NOTE: return as plain LSB string BCD.parse value; end
to_p(*opts)
click to toggle source
# File lib/rdoba/numeric.rb, line 53 def to_p(*opts) v = parse_opts(opts) value = self minus = if value < 0 value = -value true end res = '' while value != 0 value, rem = value.divmod(256) res += rem.chr end pad_char = if minus negres += '' over = 1 res.each_byte do |byte| negbyte = 255 - byte + over negres += if negbyte > 255 over = 1 0 else over = 0 negbyte end end res = negres "\xFF" else "\0" end res += pad_char * (v[:padding].to_i - res.size) if res.size < v[:padding].to_i plain = (v[:be] ? res.reverse(String::ByteByByte) : res).to_p plain end
to_rom()
click to toggle source
# File lib/rdoba/roman.rb, line 21 def to_rom res = '' num = self i = RomanNumbers.size - 1 while num > 0 if num >= RomanNumbers[ i ] res << Roman[ RomanNumbers[ i ] ] num -= RomanNumbers[ i ] else i -= 1 ;end;end res ;end