DEC2BIN para CASIO FX-180P

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

DEC2BIN para CASIO FX-180P

Mensajepor dancresp » 04 Oct 2019 12:43

EL PROGRAMA
Todo el mundo sabe que la calculadora CASIO FX-180P no permite hacer conversiones de números entre distintas bases.

Este programa nos va a permitir convertir números decimales entre 0 y 1023 a números binarios de hasta 10 dígitos.

Calculadora_little.jpg
Calculadora_little.jpg (42.92 KiB) Visto 247 veces


COMO FUNCIONA
El programa ocupa 31 pasos de programación y usa 4 registros K para almacenar los valores y resultados.

En el registro K-1 guardamos el número a convertir.
En el registro K-2 guardamos el contador del bucle.
En el registro K-3 guardamos el resultado de la conversión.
En el registro K-4 guardamos el valor 10 elevado al contador del bucle.

El programa se ha dividido en dos partes:
P1 – Inicialización de valores y entrada del número decimal.
P2 – Proceso de convertir el número de decimal a binario.

El programa se divide en 5 bloques, que he dividido en franjas de colores:
1º - Pedir el número decimal a convertir (K-1) e inicializar el contador del bucle
(K-2) y resultado (K-3). También se desactivan los decimales.
2º - Decrementamos el valor del bucle.
3º - Comprobamos si se debe añadir un 1 o un 0 al resultado en función de si el resultante del valor a convertir es mayor al valor de 2 elevado al contador del bucle.
4º - Bloque que añade un 1 al resultado.
5º - Mostramos el resultado, activa los decimales y finaliza el programa.


LISTADO DEL PROGRAMA
Listado.png
Listado.png (15.25 KiB) Visto 247 veces


EJEMPLO
Para usar el programa hay que hacer lo siguiente:

P1
170 (se introduce el número decimal comprendido entre 0 y 1023)
RUN

P2
10101010 (aparece el resultado en binario)

Para convertir otro valor se debe repetir todo el proceso por este orden.


APUNTES FINALES
A mediados de los años 80 programé un pequeño programa que convertía un número binario a decimal, a base de ir entrando los dígitos de 1 en 1. Poco práctico.

En el año 2012 realicé una nueva versión que funcionaba bastante mejor, realizando la conversión en unos 12 segundos.

listados.gif
listados.gif (20.08 KiB) Visto 247 veces


En vistas de que permitía convertir números binarios en decimales, pero no decimales en binarios, y teniendo en cuenta que hacía unos años que no programaba nada para el primer equipo programable de mi vida, me he dedicado a desarrollar un programa que hace el paso contrario.

Desarrollar un programa así en un equipo como este es realmente complicado. Se junta un lenguaje muy simple con un equipo con muy poca memoria, pero una vez más… prueba superada.

Al igual que el otro, usa dos áreas de programa, el P1 para entrar el número a convertir e inicializar registros, y el P2 para hacer la conversión del número. El proceso es bastante más rápido que el otro, y en un par de segundos tendremos la conversión realizada con valores de hasta 10 bits, que es el número de dígitos que contiene la pantalla.

Para hacer la conversión he tenido que desactivar los decimales con “MODE 70”. Realmente, lo que hace esto es ocultarlos aunque realmente están allí. Es preciso hacer un RND para igualar lo que aparece en pantalla con lo que se usa para hacer el cálculo, ya que si no funciona mal.

He dedicado varias horas en conseguir que funcione bien. Para no tener que ir escribiendo y reescribiendo el código en la calculadora, he usado una CASIO FX-3900Pv que me ha permitido editar los programas, añadiendo o quitando instrucciones. Con todo, el programa resultante funciona en cualquier calculadora de la familia.


Pues nada más, solo me queda…

Invitaros a probarlo

Volver a “Lenguajes de Programación y herramientas Dev”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado