Conversion of a binary number into decimal format.

## Function to convert a given binary string into decimal number

def bin2dec(number)

ret_dec = 0;

number.split(//).each{|digit|

ret_dec = (Integer(digit) + ret_dec) * 2;

}

return ret_dec/2;

end

print bin2dec('101'),"\n";

## OR you can use this one too

number = "1111";

print Integer("0b"+number), "\n"; ## appending 0b will work for binary

Conversion of a decimal number into hexa decimal format

`## Function to convert a given integer string/number into hexa decimal string`

def dec2hex(number)

number = Integer(number);

hex_digit = "0123456789ABCDEF".split(//);

ret_hex = '';

while(number != 0)

ret_hex = String(hex_digit[number % 16 ] ) + ret_hex;

number = number / 16;

end

return ret_hex; ## Returning HEX

end

print dec2hex("255"),"\n";

Conversion of decimal into binary format

`## Function to convert a given integer string/number into binary formatted string`

def dec2bin(number)

number = Integer(number);

if(number == 0)

return 0;

end

ret_bin = "";

## Untill val is zero, convert it into binary format

while(number != 0)

ret_bin = String(number % 2) + ret_bin;

number = number / 2;

end

return ret_bin;

end

print dec2bin("19"),"\n";

Conversion of Hex to Decimal number

`number = "FF";`

print number.hex,"\n"; ## This will convert a hexa string into int

print Integer("0x"+number), "\n"; ## this will work too

Conversion of octal into decimal number

`number = "255";`

print number.oct,"\n"; ## oct will convert into decimal

print Integer("0o"+number), "\n"; ## appending 0o will work too

Using the provided examples, you can easily convert the other base conversion task easily. If anyone know the ruby library that can do the task with a single function call, pls post at comment section.

## 3 comments:

you can use

>> "101".to_i(2)

=> 5

and

>> 5.to_s(2)

=> "101"

to convert to other bases pretty easily (the base is the argument)

See

http://www.ruby-doc.org/core/classes/String.html#M000802

Thanks so much for sharing the bin2dec and dec2hex functions! I was just looking for something like this - very beneficial - thanks very very much!

another two neat tricks:

puts 0b1011 ## 11

puts 11[0] ## 1

puts 11[1] ## 1

puts 11[2] ## 0

puts 11[3] ## 1

puts 11[4] ## 0 -- from this point - 0s

check my blog - scraping with ruby :)

http://rubyscraping.wordpress.com

Post a Comment