Funcións para converter decimal a binario ou hexadecimal

1. Función para binarizar un número

 

Problema
Dado un número decimal, convertelo a binario (base 2) creando unha función (subprograma) que colla o dato e faga o cálculo con divisións sucesivas.
Análise
  • Temos moitos xeitos de facelo. Neste caso será por divisións sucesivas.
  • En Python temos unha función predefinida para facelo directamente (ou sexa, que nos gusta perder o tempo)
Algoritmo
  • Bucle namentres (repetir ata en Scratch) para pasos sucesivos.
  • Variables: unha para o decimal, outra para almacenar 1 e 0 do binario (serán cadeas).
  • Dividimos o número decimal entre 2 sucesivamente e almacenamos o resto na variable binaria.

 

 

Solución proposta (lembra, non é única):

 

Diagrama de fluxo (Pseint) Scratch

 

[Scratch:Uso de funcións: binarizar]

Pseudocódigo (Pseint) Python 3

pseudo

python

[Repl.it: Binarizar]

 

 

  • Busca a función de Python que permita facer o cálculo directamente.
  • Engade unha opción para que se introducimos un número negativo ou unha cadea nos de erro e nos permita volver escribir o número.

2. Pasar de decimal a calquera base menor que 10

 

Fai unha función para calquera base menor de 10 (pasar de decimal a octal). Para iso terás que modificar a función anterior para que vaia dividindo o número entre 3, 4, 5.. ou a base que escollas. O resultado tería que ser así:

Engádelle a opción de sinalar o erro se o número é negativo ou se a base escollida é maior que 9.

3. Pasar de decimal a hexadedimal

 

O código hexadecimal ten moita importancia nas ciencias da computación, como xa vimos no apartado Como contan os ordendores. Como no noso sistema de numeración só temos 10 símbolos, para contar en hexadecimal deberemos facer man doutros 6 símbolos: as primeiras letras do alfabeto, de tal xeito que a partir do 9 contaremos como se amosa na táboa da dereita.

Hexadecimal
Decimal
A
10
B
11
C
12
D
13
E
14
F
15

 

Calquera número menor de 256 pódese escribir como  a suma de dous díxitos en hexadecimal. Por exemplo:

Decimal Descomposición Hexadecimal
200 12 · 161+8 · 160 C8
154 9 · 161+10 · 160 9A

Escribe o programa en Python, creando unha función que converta de hexadecimal menor que 256 a decimal. Como na imaxe que se presenta a continuación  co pseudocódigo do programa,  crea unha lista para asignar a cada valor hexadecimal o seu símbolo.

pseudocódigo pasar de decimal a hexadecimal

 

 

4. Pasar de hexadecimal a decimal.

 

Para pasar de hexadecimal a decimal haberá que facer a operación inversa. Vexamos un par de exemplos:

Hexadecimal Descomposición Decimal
174F 1 · 163+7 · 162+4 · 161+15 · 160 5967
ACDC 10 · 163+12 · 162+13 · 161+12 · 160

44252

Deseña un programa en Python que faga esta conversión, definindo unha función.

 

5. Pasar de decimal a hexadecimal de 4 díxitos

Cos pasos explicados antes xa estas en disposición de exprimir o miolo e facer un programa que pasa de decimal a hexadecimal números menores que 65536 (é dicir números de catro díxitos hexadecimais).

6. Calculadora conversora

Con todas as funcións deste capítulo crea unha calculadora conversora entre decimal, binario e hexadecimal.

 

Binarizar e outras conversións Ordena e funcionará Máis orde Que ordene Python