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

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

Re: [shell-script] Re: Conversão de Binario para Decimal e Vice-Versa


From: Michael Costa
Subject: Re: [shell-script] Re: Conversão de Binario para Decimal e Vice-Versa
Date: Wed, 30 Dec 2009 12:08:20 -0200

Obrigado à todos! Problema solucionado!

2009/12/29 address@hidden <address@hidden>

>
>
> Olá Michael ! Tudo joia ? E os cubos ? Continua perdendo tempo com isso ?
>
> Como não gosto disso , acabei estudando shell e agora vou te ajudar !
> kkkkkkkkkk
>
> Abraço e depois me paga uma cerveja
>
> PS Estou utilizando um arquivo contendo a tabela ASCII-1
> veja aqui http://pastebin.com/m635fb559
>
> O código abaixo faz o que você solicitou, sem perfumaria.
>
>
> nhanha@nhanhaserver :~$ cat txt2bin.sh
> #!/bin/sh
> if [ $2 ]; then echo "usage $0 <string>"; exit 1; fi
> if [ ! "$1" ]; then echo "usage $0 <string>"; exit 1; fi
> echo $1
>
> QTD=$(echo -n "$1" |wc -c)
> COUNT=0
> while [ ${COUNT} -lt ${QTD} ] ; do
> CHAR=$(expr ${COUNT} + 1)
> LETRA=$(echo "${1}" | cut -c ${CHAR})
> if [ "${LETRA}" = " " ] ; then LETRA="(sp)"; fi
> ASCII=$(grep "^${LETRA} " ascii.txt | awk '{print $2}')
> BIN=$(echo "obase=2;${ASCII}" | bc)
> LENBIN=$(echo -n ${BIN} | wc -c)
> while [ ${LENBIN} -lt 8 ]; do
> BIN="0${BIN}"
> LENBIN=$(echo -n ${BIN} | wc -c)
> done
> if [ ${BIN} = "00000000" ]; then BIN="NAO TEM NA MINHA TABELA ASCII-1"; fi
> echo -e "${COUNT}\t${LETRA}\t${ASCII}\t${BIN}"
> COUNT=$(expr ${COUNT} + 1)
> done
> echo "\"${1}\" tem ${QTD} caracteres"
> nhanha@nhanhaserver :~$ sh ./txt2bin.sh "Teste de script de txt para ASCII
> binário"
> Teste de script de txt para ASCII binário
> 0 T 84 01010100
> 1 e 101 01100101
> 2 s 115 01110011
> 3 t 116 01110100
> 4 e 101 01100101
> 5 (sp) 32 00100000
> 6 d 100 01100100
> 7 e 101 01100101
> 8 (sp) 32 00100000
> 9 s 115 01110011
> 10 c 99 01100011
> 11 r 114 01110010
> 12 i 105 01101001
> 13 p 112 01110000
> 14 t 116 01110100
> 15 (sp) 32 00100000
> 16 d 100 01100100
> 17 e 101 01100101
> 18 (sp) 32 00100000
> 19 t 116 01110100
> 20 x 120 01111000
> 21 t 116 01110100
> 22 (sp) 32 00100000
> 23 p 112 01110000
> 24 a 97 01100001
> 25 r 114 01110010
> 26 a 97 01100001
> 27 (sp) 32 00100000
> 28 A 65 01000001
> 29 S 83 01010011
> 30 C 67 01000011
> 31 I 73 01001001
> 32 I 73 01001001
> 33 (sp) 32 00100000
> 34 b 98 01100010
> 35 i 105 01101001
> 36 n 110 01101110
> 37 á NAO TEM NA MINHA TABELA ASCII-1
> 38 r 114 01110010
> 39 i 105 01101001
> 40 o 111 01101111
> "Teste de script de txt para ASCII binário" tem 41 caracteres
> nhanha@nhanhaserver :~$
> Se quiser também pegar caracteres especiais, acentuados etc, faça as
> modificações necessárias.
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>,
> Michael Costa <linuxajuda@...> escreveu
>
> >
> > Oá lista! Imaginem o seguinte cenário, gostaria de escrever um texto e
> > convertê-lo para binário.
> >
> > Eu já tenho a tabela ASCII, então a minha idéia seria pegar a letra O por
> > exemplo e convertê-la para decimal segundo a tabela ASCII, ficaria 79, em
> > seguida, converteria este 79 em binario, resultando em 1001111. Ótimo! É
> > isto que preciso.
> >
> > Preciso apenas automatizar tudo isto.
> >
> > O que tenho ?
> >
> > Tabela ASCII
> > Comandos para conversão (Dec to Bin (echo 'obase=2;79' | bc) e Bin to Dec
> > (echo 'ibase=2;01001111' |bc)).
> >
> > A dúvida é: como automatizar tudo isto ?
> >
> > A idéia é escrever um texto (incluindo a pontuação, espaços, etc) e ter a
> > saída em código binário. Seria interessante ele acrescentar os 0 à
> esquerda
> > para que fique sempre com 8 caracteres. E claro, o código inverso para
> > converter do binário para string.
> >
> > Podem me orientar ?
> >
> > Abraços!
> >
> > Michael
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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