bc: ¿Por qué `ibase=16; obase=10; ¿FF` devuelve FF y no 255?

bc: ¿Por qué `ibase=16; obase=10; ¿FF` devuelve FF y no 255?

Lo he estado usando bcpara 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=16hecho esto, los siguientes números de entrada están en hexadecimal,incluido10 en obase=10el 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

información relacionada