J'essaie de faire un hex
calcul directement avec bc
, j'ai déjà spécifié l'échelle.
echo 'scale=16;c06b1000-c06a5e78' | bc
Mais je reçois toujours un zéro. Qu'est-ce qui ne va pas?
J'essaie de faire un hex
calcul directement avec bc
, j'ai déjà spécifié l'échelle.
echo 'scale=16;c06b1000-c06a5e78' | bc
Mais je reçois toujours un zéro. Qu'est-ce qui ne va pas?
Réponses:
echo 'ibase=16;C06D1000-C06A5E78' | bc
176520
Notez que seuls les chiffres hexadécimaux UPPER CASE sont pris en charge, car les minuscules entreraient en conflit avec les noms de fonction et de variable, c'est pourquoi vous avez obtenu 0 dans votre exemple ( var1 - var2
)
Si vous avez également besoin de la réponse en hexadécimal, définissez simplement la obase
variable:
echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188
PS: FYI scale
n'est pas conçu pour la base de conversion. De man bc
:
scale defines how some operations use digits after the decimal point.
The default value of scale is 0.
obase
avant de définir ibase
. Si vous définissez d' ibase
abord, cela affecte également la valeur analysée obase
. ie ibase = 16; obase = 16;
définit obase
à 0x16 = 22