[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Conversão de Binario para Decimal e Vice-Versa
From: |
address@hidden |
Subject: |
Re: Conversão de Binario para Decimal e Vice-Versa |
Date: |
Tue, 29 Dec 2009 22:17:16 -0000 |
User-agent: |
eGroups-EW/0.82 |
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, 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]
>