Respostas:
echo 'ibase=16;C06D1000-C06A5E78' | bc
176520
Observe que apenas os dígitos hexadecimais UPPER CASE são suportados, pois os minúsculos entrariam em conflito com os nomes das funções e das variáveis, e é por isso que você obteve 0 no seu exemplo ( var1 - var2
)
Se você também precisar da resposta em hexadecimal, defina a obase
variável:
echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188
PS: A FYI scale
não foi projetada para a base de conversão. De man bc
:
scale defines how some operations use digits after the decimal point.
The default value of scale is 0.
obase
antes de definir ibase
. Se você definir ibase
primeiro, isso também afetará o valor analisado obase
. ou seja, ibase = 16; obase = 16;
define obase
para 0x16 = 22