Usted naturalmente utilizar Integer#to_s(2)
, String#to_i(2)
o "%b"
en un programa real, pero, si usted está interesado en cómo funciona la traducción, este método calcula la representación binaria de un número entero dado usando operadores básicos:
def int_to_binary(x)
p = 0
two_p = 0
output = ""
while two_p * 2 <= x do
two_p = 2 ** p
output << ((two_p & x == two_p) ? "1" : "0")
p += 1
end
#Reverse output to match the endianness of %b
output.reverse
end
Para comprobar funciona:
1.upto(1000) do |n|
built_in, custom = ("%b" % n), int_to_binary(n)
if built_in != custom
puts "I expected #{built_in} but got #{custom}!"
exit 1
end
puts custom
end
Cuando dice que quiere convertir operadores matemáticos en cadenas binarias, ¿qué quiere decir exactamente? Use la representación ASCII escrita en binario? – bta
Supongo que querías hacer el popular algoritmo genético. :-) – nemesisfixx