2011-11-01

Conversioni da esadecimale, binario e ottale a decimale in bash

In bash c'è un costrutto sintattico molto utile per eseguire calcoli, è assimilabile al meccanismo di sostituzione delle variabili:
$((7+5))
nella linea di comando verrà sostituito con 12, per visualizzarlo andrà preceduto dal comando echo:
echo $((7+5))
gli operandi delle espressioni possono essere forniti in diverse basi numeriche, i numeri forniti con 0 come prima cifra saranno interpretati come numeri ottali (in base 8), quelli prefissati da 0x come esadecimali (base 16) e quelli che iniziano per le cifre da 1 a 9 come decimali (base 10).
Per ottenere la conversione in decimale da ottale o esadecimale è sufficiente inserire tra le parentesi il numero da convertire prefissandolo come previsto per indicare la base corretta:
$((0x400))
oppure
$((02000))
per ottenere 1024.
Ogni altra base può essere specificata prefissando con la base seguita dal carattere #, ad esempio per esprimere un numero binario:
$((2#100))
$((4#10))
per ottenere 4.
Se si deve eseguire un calcolo con bsi miste si può liberamente indicare ogni numero con la sua propria base secondo la convenzione descritta.

Nessun commento:

Posta un commento