
Lo he estado usando bc
para convertir números de binario a hexadecimal, de octal a decimal y otros.
En el siguiente ejemplo, estaba intentando convertir un número de base 16 (hexadecimal) a binario, octal y decimal.
No tengo ningún problema con los 2 primeros intentos.
$ echo 'ibase=16; obase=2; FF' | bc
11111111
$ echo 'ibase=16; obase=8; FF' | bc
377
Pero cuando intenté convertir un número de base 16 (hexadecimal) a base 10 (decimal), obtuve una respuesta incorrecta. La respuesta debería ser255
$ echo 'ibase=16; obase=10; FF' | bc
FF
Respuesta1
Una vez ibase=16
hecho esto, los siguientes números de entrada están en hexadecimal,incluido10 en obase=10
el que representa el valor decimal 16. Entonces, configure obase antes o después, usando la nueva base de entrada (ahora hexadecimal):
$ echo 'obase=10; ibase=16; FF' | bc
255
$ echo 'ibase=16; obase=A; FF' | bc
255