PASO BINARIO A DECIMAL 10011
Separamos cifras 1 0 0 1 1
Peso cifra
Valor cifra 16x1 8x0 4x0 2x1 1x1
Nº Decimal = 16x1 + 2x1 +1x1 = 19
2^4 2^3 2^2 2^1 2^0
Preguntar -> numero
Longitud -> L
Recorrer el numero desde 1
hasta L
Extraer cifra a cifra
El resultado será:
1
0
0
1
1
Código basic
ALGORITMO: SEPARAR CADA CIFRA
L = 5
i = 1 -> 2^4 = 16
i = 2 -> 2^3 = 8
i = 3 -> 2^2 = 4
i = 4 -> 2^1 = 2
i = 5 -> 2^0 = 1
Hay que hallar la relación de la potencia a elevar función de (L, i)
4 = 5-1
3 = 5-2
2 = 5-3
…………
2 ^ (L-i)
ALGORITMO: HALLAR EL PESO DE CADA CIFRA
L = 5
i = 1 -> 1 x 16 = 16
i = 2 -> 0 x 8 = 0
i = 3 -> 0 x 4 = 0
i = 4 -> 1 x 2 = 2
i = 5 -> 1 x 1 = 1
Código Basic
ALGORITMO: HALLAR EL VALOR DE CADA CIFRA
L = 5
i = 1 -> 1 x 16 = 16
i = 2 -> 0 x 8 = 0
i = 3 -> 0 x 4 = 0
i = 4 -> 1 x 2 = 2
i = 5 -> 1 x 1 = 1
19
Código Basic
ALGORITMO: SUMAR EL VALOR DE TODAS LAS
CIFRAS
CORREGIR EL PROGRAMA PARA QUE LAS CIFRAS SOLO SEAN 0 , 1
EJERCICIO
Programa para convertir un número hexadecimal en decimal.
Tener en cuenta que se puedan meter letras minúsculas, para ello después de preguntar el numero lo convertimos a mayúsculas
A continuación cuando vayamos separando cifra a cifra, las validamos, para que no se puedan meter cifras distintas de 0,1,2,…,9,A, B,C, D, E,F
A continuación debemos de convertir las cifras A=10, B= 11,…, E = 15
El resto del programa será adaptar el que hicimos de binario
Recordamos :
Un número hexadecimal ABC52 en base 16
A = 10, B = 11, C =12, D = 13, E = 14, F = 15
Decimal = 10 * 16^4 + 11 * 16^3 + 12 *16^2 + 5*16^1 + 2 * 16^0
Decimal = 703570
CODIGOS ASCII
Si introducimos el siguiente código -> x = 65
Los números 0,1, …9 tienen el código ASCII entre el 48 y el 57
Las letras A, B, C, D, E,F tienen el código ASCII entre el 65 y el 70
VALIDAR UNA CIFRA QUE SEA HEXADECIMAL
Cifra 0, 1, 2, 3,4, 5, 6, 7, 8, 9 A,B,C,D,E,F
ASCII 48……………………………57 65……………70
Por tanto una cifra será HEXADECIMAL Válida si:
Su código ASCII (>= 48 y <=57) o (>= 65 y <=70)
ALGORITMO
1) Pregunta numero hexadecimal
2) Convertirlo a mayúsculas
3) Hallar longitud el numero
4) (Bucle desde 1 hasta longitud)
Separamos cifra a cifra
• Validar cada cifra para que solo se puedan meter: 0,1,2,…,9, A,B,C,D,E,F
Cambiar las letras por su valor A= 10, B= 11, … F = 15
Hallar el peso de cada cifra en base 16, potencias de 16
Sumar el valor de todas las cifras
5) Escribir el resultado del numero decimal