yOn Fri, 28 Jul 2006 9:55pm -0300, Reinaldo Carvalho wrote: > Só para ficar registrado... > > Formas práticas de conversão: > > Hexadecimal => Decimal > $ echo $((16#0000f0050)) > 983120 > $ echo $((0x0000f0050)) > 983120 > $ echo $((16#00050)) > 80 > $ echo $((0x00050)) > 80
Olá Reinaldo, obrigado por enviar os exemplos... > Só achei essa forma de "Decimal => Hexadecimal" pouco flexivel... > $ printf "%x\n" 080 > bash: printf: 080: invalid number > 0 O printf builtin do bash tenta fazer a mesma conversão que as operações matemáticas da gramática do shell fazem. Assim ele tenta converter o valor 80 em octal, o que não é um número válido. Use sempre o 0x. Um número começado por 0 é octal: > $ printf "%x\n" 0x00080 > 80 > Aqui tu disse para o bash (shell dummie, use zsh que ele é capaz de ver quando ele é ou não um valor octal quando isto é possível ;-)) > TODO: > bitwise com | e ^ > melhorar Decimal => Hexadecimal com printf $ printf "%x\n" $((0x8010 | 0x0108)) 8118 OBS: Estou usando números fáceis de se fazer a conversão mental. O ^ é o | exclusivo, $ printf "%x\n" $((0x1138 ^ 0x807f)) 9140 1 exclusivo 8 é 9 (faça também printf %x $((2#0001 ^ 2#1000))) 1 exclusivo 0 é 1 (faça também printf %x $((2#0001 ^ 2#0000))) 3 exclusivo 7 é 4 (faça também printf %x $((2#0101 ^ 2#0111))) 8 exclusivo f é 7 (faça também printf %x $((2#1000 ^ 2#1111))) -- Felipe Kellermann --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html