class Object

Public Instance Methods

dec2hex(decimal_number) click to toggle source
# File lib/dectohex.rb, line 8
def dec2hex(decimal_number)

    if decimal_number == nil
        raise Arg, "Argument decimal number is empty (example: dec2hex(1337))"
    end

    if decimal_number.class != Integer
        raise TypeError, "Incorrect class object Integer"
    end

    hexa_result = Array.new
    tmp_result = decimal_number
    used = true
    hash_letters = { 10 => "A", 11 => "B", 12 => "C", 13 => "D", 14 => "E", 15 => "F" }
    final_result = []
    while true

        while(tmp_result / 16 != tmp_result % 16)
            if(used == true)
                tmp_result = decimal_number / 16
                hexa_result << decimal_number % 16
                used = false
            end
            hexa_result << tmp_result % 16
            tmp_result = tmp_result / 16
        end
        break
    end

    hexa_result.each do |fixnum|
        if(hash_letters.has_key?(fixnum) == true)
            final_result << hash_letters[fixnum]
        else
            final_result << fixnum
        end
    end
    return final_result.reverse.join
end