Odpowiedzi:
echo 'ibase=16;C06D1000-C06A5E78' | bc
176520
Zauważ, że obsługiwane są tylko cyfry szesnastkowe WIELKIE LICZBY, ponieważ małe litery kolidowałyby z nazwami funkcji i zmiennych, dlatego w twoim przykładzie masz 0 ( var1 - var2
)
Jeśli potrzebujesz również odpowiedzi w formacie szesnastkowym, po prostu ustaw obase
zmienną:
echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188
PS: FYI scale
nie jest przeznaczony do bazy konwersji. Od man bc
:
scale defines how some operations use digits after the decimal point.
The default value of scale is 0.
obase
przed ustawieniem ibase
. Jeśli ustawisz jako ibase
pierwszy, wpłynie to również na analizowaną wartość obase
. tzn. ibase = 16; obase = 16;
ustawia obase
na 0x16 = 22