Conversão hexa para Bin [RESOLVIDO]

1. Conversão hexa para Bin [RESOLVIDO]

Eduardo Neto
eduardonetoh

(usa Outra)

Enviado em 11/11/2013 - 15:49h

Galera, toh precisando fazer um programa de conversão de base..

utilizei uma case dentro de uma while, utilizando a linguagem C e a ideia que utilizei pra criar, deu certo.. quando transforme isso pra Shell.. esta dando erro na linha 11, alguém pode me ajudar a resolver isso.. vou tentar explicar.. quando o usuário digitar "1a", a resposta tem que ser "00011010". vlw..
OBS: SEM UTILIZAR BIBLIOTECA pro favor!


#! /bin/bash

echo "Digite o valor hexadecimal: "
read hexa

i=0

echo "Valor equivalente binario (BCD): "
while ${hexa [i]}:
do
case ${hexa [i]} in
0) echo "0000" ;;
1) echo "0001" ;;
2) echo "0010" ;;
3) echo "0011" ;;
4) echo "0100" ;;
5) echo "0101" ;;
6) echo "0110" ;;
7) echo "0111" ;;
8) echo "1000" ;;
9) echo "1001" ;;
A) echo "1010" ;;
B) echo "1011" ;;
C) echo "1100" ;;
D) echo "1101" ;;
E) echo "1110" ;;
F) echo "1111" ;;
a) echo "1010" ;;
b) echo "1011" ;;
c) echo "1100" ;;
d) echo "1101" ;;
e) echo "1110" ;;
f) echo "1111" ;;
*) echo "Valor hexadecimal Invalido"
esac
let i++
done


  


2. Re: Conversão hexa para Bin [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 11/11/2013 - 16:28h

Boa tentativa, só faltou ajustas as sintaxes do Shell. Para este caso usei 2 "case", fica mais
pratico e reduzido:


#! /bin/bash

echo "Digite o valor hexadecimal: "
read hexa

echo "Valor equivalente binario (BCD): "
read bin

case $hexa in

0) a=0000 ;;
1) a=0001 ;;
2) a=0010 ;;
3) a=0011 ;;
4) a=0100 ;;
5) a=0101 ;;
6) a=0110 ;;
7) a=0111 ;;
8) a=1000 ;;
9) a=1001 ;;
*) echo "Valor hexadecimal Invalido";;

esac

case $bin in

A|a) b=1010 ;;
B|b) b=1011 ;;
C|c) b=1100 ;;
D|d) b=1101 ;;
E|e) b=1110 ;;
F|f) b=1111 ;;
*) echo "Valor binario Invalido";;

esac

echo "Numero = $a$b"



3. Re: Conversão hexa para Bin [RESOLVIDO]

Eduardo Neto
eduardonetoh

(usa Outra)

Enviado em 11/11/2013 - 19:38h

Fera, gostei do seu código.. mais nesse caso, há ideia seria eu digitar um valor hexa, tipo "b1" e imprimisse "10110001".. nada mais.. nesse código que vc fez.. estou precisando digitar ate o valor binário..







#! /bin/bash

echo ""
echo "---:: PROJETO INTEGRADOR ::---"
echo "---:: SHELL SCRIPT ::---"
echo "---:: CONVERSÃO DE BASE ::---"
echo "---:: HEXA PARA BIN ::---"
echo ""
echo "Prof: Jorge Osvaldo"
echo "Autor: Eduardo Neto"
echo " Jadson Reis"
echo ""

echo "Digite um valor hexadecimal:"
read hexa

echo "Valor equivalente binário (BCD):"

while $hexa;
do
case "$hexa" in
0) echo "0000";;
1) echo "0001";;
2) echo "0010";;
3) echo "0011";;
4) echo "0100";;
5) echo "0101";;
6) echo "0110";;
7) echo "0111";;
8) echo "1000";;
9) echo "1001";;
A) echo "1010";;
B) echo "1011";;
C) echo "1100";;
D) echo "1101";;
E) echo "1110";;
F) echo "1111";;
a) echo "1010";;
b) echo "1011";;
c) echo "1100";;
d) echo "1101";;
e) echo "1110";;
f) echo "1111";;
esac
done




4. Re: Conversão hexa para Bin [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 12/11/2013 - 11:07h

Entendi.
Ajustei o script pra digitar tudo num campo só:

 
#! /bin/bash

echo "Digite o valor hexadecimal: "
read hexa

v1=$(echo $hexa | cut -c1)
v2=$(echo $hexa | cut -c2)


#echo "Valor equivalente binario (BCD): "
#read bin

case $v2 in

0) a=0000 ;;
1) a=0001 ;;
2) a=0010 ;;
3) a=0011 ;;
4) a=0100 ;;
5) a=0101 ;;
6) a=0110 ;;
7) a=0111 ;;
8) a=1000 ;;
9) a=1001 ;;
*) a="xx";;

esac

case $v1 in

A|a) b=1010 ;;
B|b) b=1011 ;;
C|c) b=1100 ;;
D|d) b=1101 ;;
E|e) b=1110 ;;
F|f) b=1111 ;;
*) b="xx";;

esac

if [ $a == "xx" ] || [ $b == "xx" ]; then

echo "Numero invalido"
exit 1

else

echo "Numero = $b$a"

fi



5. Re: Conversão hexa para Bin [RESOLVIDO]

Eduardo Neto
eduardonetoh

(usa Outra)

Enviado em 12/11/2013 - 15:11h

vlw meu brother.. em cima do que vc fez.. acabei tendo uma ideia resolver meu problema.. ajudou bastante!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts