shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Conversão de Bases em Bash


From: Tiago Barcellos Peczenyj
Subject: Conversão de Bases em Bash
Date: Thu, 12 Jul 2007 12:21:54 -0300

Muito interessante esta dica que vi no "Advanced Bash-Scripting Guide"
do Mendel Cooper  [ http://tldp.org/guides.html ]  e, inclusive,
publiquei no meu blog com um adendo sobre fazer o mesmo usando o bc
que todo mundo deve estar careca de saber.

Com Bash, podemos representar números nas mais variadas bases, desde 2
até 64 usando o operador # como no exemplo abaixo:

X=101
for BASE in 2 8 10 16 32 64 ; do
   echo "$X na base $BASE eh $(( ${BASE}#${X} ))" # conversao pra decimal
done
101 na base 2 eh 5
101 na base 8 eh 65
101 na base 10 eh 101
101 na base 16 eh 257
101 na base 32 eh 1025
101 na base 64 eh 4097

echo $((16#FF)) $((32#V))
255 31

echo $((64#z))  $((64#Z))  $((64#@))  $((64#_)) # atenção nos 2 ultimos!
35 61 62 63


Além de ser possível usar a notação de octal e hexa do C (iniciar a
expressão com 0 e 0x, respectivamente)

echo $((10)) $(( 010 )) $(( 0x10 )) $((10 + 010 + 0x10))
10 8 16 34

--
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]