conversor de bases no shell

Publicado por gabriel 29/08/2008

[ Hits: 7.574 ]

Download gcalc




Meu primeiro conversor de base.

  



Esconder código-fonte

#!/bin/bash

Principal()
{
echo "====================================="
echo "| 1) entrada de numeros binarios    |"
echo "| 2) entrada de numeros decimais    |"
echo "| 3) entrada de numeros octais      |"
echo "| 4) entrada de numeros hexadecimais|"
echo "====================================="
echo "opcao:"
read OPCAO
case $OPCAO in
  1)Entrada_binario ;;
  2)Entrada_decimal ;;
  3)Entrada_octal ;;
  4)Entrada_hexadecimal ;;
  *)Principal ;;
esac
}

Entrada_binario()
{
clear
echo "============================"
echo "| digite um numero binario |"
echo "============================"
read NUM2
echo ""
clear
echo "================================="
echo "| 1) Converter para decimal     |"
echo "| 2) Converter para hexadecimal |"
echo "| 3) Converter para octal       |"
echo "| *) aperte qualquer tecla para |"
echo "|     voltar ao menu iniciar    |"
echo "================================="
echo "opcao: "
read OPCAO2

case $OPCAO2 in

1)Saida_decimal ;;
2)Saida_hexadecimal ;;
3)Saida_octal ;;
*)Principal ;;
esac
}

Saida_decimal()
{
case $OPCAO2 in
      1) # Conversão de decimal.
      # Base 10 somente 0-9:
      grep -qs "[^0-9]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 10 use de 0-9"
      read -n 1 && continue ; }
 RE=$(bc -l <<< "obase=10 ; ibase=2 ; $NUM2");
echo "O seu numero na  base decimal é: $RE";;
esac
}


Saida_hexadecimal()
{ 
case $OPCAO2 in
     2) # Conversão de hexadecimal
      grep -qs "[^0-9A-F]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 16 use de 0-9 e A-F"
      read -n 1 && continue ; }

 RE=$(bc -l <<< "obase=16 ; ibase=2 ; $NUM2");
echo "O seu numero na  base decimal é: $RE";;
esac
}


Saida_octal()
{
case $OPCAO2 in
     3) # Conversão de octal
      grep -qs "[^0-7]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 8 use de 0-7"
      read -n 1 && continue ; }

RE=$(bc -l <<< "obase=8 ; ibase=2 ; $NUM2");
echo "O seu numero na  base decimal é: $RE";;
esac
}

Entrada_decimal()
{
clear
echo "============================"
echo "| digite um numero decimal |"
echo "============================"
read NUM1
echo ""
clear
echo "================================="
echo "| 1) Converter para binario     |"
echo "| 2) Converter para hexadecimal |"
echo "| 3) Converter para octal       |"
echo "| *) aperte qualquer tecla para |" 
echo "|     voltar ao menu iniciar    |"
echo "================================="
echo "opcao: "
read OPCAO3

case $OPCAO3 in

1)Saida_binario ;;
2)Saida_hexadecimale ;;
3)Saida_octale ;;
*)Principal ;;
esac
}

Saida_binario()
{
case $OPCAO3 in
     1) # Conversão de binário
      grep -qs "[^0-1]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 2 use de 0-1"
      read -n 1 && continue ; }
RE=$(bc -l <<< "obase=2 ; ibase=10 ; $NUM1");
echo "o seu numero binario é: $RE";;
esac
}

Saida_hexadecimale()
{ 
case $OPCAO3 in
     2) # Conversão de hexadecimal
      grep -qs "[^0-9A-F]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 16 use de 0-9 e A-F"
      read -n 1 && continue ; }
 RE=$(bc -l <<< "obase=16 ; ibase=10 ; $NUM1");
echo "O seu numero na  base hexadecimal é: $RE";;
esac
}

Saida_octale()
{
case $OPCAO3 in
     3)# Conversão de octal
      grep -qs "[^0-7]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 8 use de 0-7"
      read -n 1 && continue ; }

RE=$(bc -l <<< "obase=8 ; ibase=10 ; $NUM1");
echo "O seu numero na  base octal é: $RE";;
esac
}

Entrada_octal()
{
clear
echo "=========================="
echo "| digite um numero octal |"
echo "=========================="
read NUM8
echo ""
clear
echo "================================="
echo "| 1) Converter para binario     |"
echo "| 2) Converter para hexadecimal |"
echo "| 3) Converter para decimal     |"
echo "| *) Aperte qualquer tecla para |"
echo "|     votal ao menu iniciar     |"
echo "================================="
echo "opcao: "
read OPCAO4

case $OPCAO4 in

1)Saida_binarioo ;;
2)Saida_hexadecimalo ;;
3)Saida_decimalo ;;
*)Principal ;;
esac
}

Saida_binarioo()
{
case $OPCAO4 in
     1) # Conversão de binário
      grep -qs "[^0-1]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 2 use de 0-1"
      read -n 1 && continue ; }
RE=$(bc -l <<< "obase=2 ; ibase=10 ; $NUM1");
echo "o seu numero binario é: $RE";;
esac
}

Saida_hexadecimal()
{ 
case $OPCAO4 in
     2) # Conversão de hexadecimal
      grep -qs "[^0-9A-F]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 16 use de 0-9 e A-F"
      read -n 1 && continue ; }
RE=$(bc -l <<< "obase=16 ; ibase=10 ; $NUM1");
echo "O seu numero na  base hexadecimal é: $RE";;
esac
}

Saida_decimalo()
{
case $OPCAO2 in
      1) # Conversão de decimal.
      # Base 10 somente 0-9:
      grep -qs "[^0-9]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 10 use de 0-9"
      read -n 1 && continue ; }
 RE=$(bc -l <<< "obase=10 ; ibase=2 ; $NUM2");
echo "O seu numero na  base decimal é: $RE";;
esac
}

Entrada_hexadecimal()
{
clear
echo "================================"
echo "| digite um numero hexadecimal |"
echo "================================" 
read NUM16
echo ""
clear
echo "================================="
echo "| 1) Converter para binario     |"
echo "| 2) Converter para decimal     |"
echo "| 3) Converter para octal       |"
echo "| *) Aperte qualquer tecla para |"
echo "|     voltar ao menu iniciar    |"
echo "================================="
echo "opcao: "
read OPCAO3

case $OPCAO3 in

1)Saida_binariou ;;
2)Saida_decimalu ;;
3)Saida_octalu ;;
*)Principal ;;
esac
}

Saida_binariou()
{
case $OPCAO3 in
     1) # Conversão de binário
      grep -qs "[^0-1]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 2 use de 0-1"
      read -n 1 && continue ; }
RE=$(bc -l <<< "obase=2 ; ibase=10 ; $NUM1");
echo "o seu numero binario é: $RE";;
esac
}

Saida_decimalu()
{
case $OPCAO3 in
      1) # Conversão de decimal.
      # Base 10 somente 0-9:
      grep -qs "[^0-9]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 10 use de 0-9"
      read -n 1 && continue ; }
 RE=$(bc -l <<< "obase=10 ; ibase=2 ; $NUM2");
echo "O seu numero na  base decimal é: $RE";;
esac
}

Saida_octalu()
{
case $OPCAO3 in
     3)# Conversão de octal
      grep -qs "[^0-7]" <(echo "$VLR")
      [[ $? == 0 ]] && {
      Echo "-> Na base 8 use de 0-7"
      read -n 1 && continue ; }

RE=$(bc -l <<< "obase=8 ; ibase=10 ; $NUM1");
echo "O seu numero na  base octal é: $RE";;
esac
}

Principal

Scripts recomendados

Script que converte maiúsculas em minúsculas e retira branco do nome.

Fedeasy - Script de Pós-instalação do Fedora

Acertando a hora da estação com o Observatório Nacional

Seletor de wallpaper para fluxbox modo grafico

Corrigir nome dos arquivos pelo Nautilus


  

Comentários
[1] Comentário enviado por SMarcell em 01/09/2008 - 13:54h

Esse aqui é o meu:

http://www.vivaolinux.com.br/scripts/verFonte.php?codigo=3058&arquivo=base.sh

Um dos primeiros scripts que escrevi!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts