devo convertire una stringa esadecimale in un intero esadecimale, in questo modo:Convertire una stringa esadecimale a un int esadecimale
color = "0xFF00FF" #can be any color else, defined by functions
colorto = 0xFF00FF #copy of color, but from string to integer without changes
posso avere formato RGB troppo.
Sono obbligato a fare questo, perché questa funzione va dopo:
def i2s int, len
i = 1
out = "".force_encoding('binary')
max = 127**(len-1)
while i <= len
num = int/max
int -= num*max
out << (num + 1)
max /= 127
i += 1
end
out
end
ho visto here che esistono interi esadecimali. Qualcuno può aiutarmi con questo problema?
Perché si aspetta 'color.to_i' di essere qualcosa di diverso da' 0'? Hai letto i documenti API (http://apidock.com/ruby/String/to_i) che mostrano che la base è impostata su "10", quindi la tua stringa con uno zero e "x" sarebbe considerata come zero decimale. Devi dire al metodo 'to_i' che la tua stringa è una stringa esadecimale e l'API lo mostra. – Pavling