MANUAL DE USUARIO
Sistema conversor de bases numéricas
5190-19-4104 Carlos Eduén Sarceño Anzueto
5190-19-7096 Denis Alexander Villalta Ortiz
5190-19-5998 Miguel Angel Moran Cifuentes
Introducción
Los sistemas de numeración han existido desde que el humano tuvo la facultad de “enumerar”
elementos. Puesto que los dispositivos electrónicos utilizan circuitos digitales como modelo matemático, resulta imprescindible poder comunicarse directamente con ellos, lastimosamente, los circuitos están diseñados para entender únicamente algunos sistemas, como es el binario, octal y hexadecimal, o bien decimal empaquetado (BCD). Por ende, tener una herramienta a mano que ayude a hacer estas conversiones es de vital importancia, y ahí la justificación del proyecto.
Índice Contenido
Introducción ... 1
Índice ... 1
Contenido ... 2
Requerimientos del Sistema ... 2
Controles ... 2
BARRA_FORMULA ... 2
CONFIR_CAMBIOS ... 3
CAJAS_TEXTO ... 3
CAJA_TEXTO_DECIMAL ... 3
CAJA_TEXTO_BINARIO ... 3
CAJA_TEXTO_OCTAL... 3
CAJA_TEXTO_HEXADECIMAL ... 3
Modo de uso ... 3
Cómo realizar conversiones ... 3
Errores ... 4
Conclusión ... 5
Apéndices ... 5
Sistemas de Numeración ... 5
Sistemas de Numeración Posicional ... 6
Conversión entre Sistemas de Numeración Posicionales ... 6
Decimal a Binario ... 6
Decimal a Octal... 7
Decimal a Hexadecimal ... 7
Binario a Octal ... 7
Binario a Hexadecimal ... 8
Octal a Binario ... 8
Octal a Hexadecimal ... 8
Hexadecimal a Binario ... 9
Hexadecimal a Octal ... 9
Binario, Octal, Hexadecimal a Decimal ... 9
Documentación del Programa ... 9
Funciones utilizadas ... 9
Referencias ... 10
Contenido
Requerimientos del Sistema
Debido a que la aplicación es una aplicación de Excel, los requisitos de Sistema son los mismo que los de su plataforma Office.
• Office 2016 o Superior
• Un procesador de 1 Gigahertz (GHz) o más rápido. Procesador de x86-bit o x64-bit con el conjunto de instrucciones SSE2. 2 GB de RAM, 3.0 GB de espacio en disco, Una resolución de pantalla de 12800 x 800
• Aceleración Gráfica por hardware requiere de una tarjeta gráfica compatible con DirectX 10.
• Windows 10, Windows 8.1, Windows 8, Windows 7 Service Pack 1, Windows 10 Server, Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2. Para la mejor experiencia de usuario, use la versión más reciente de cualquier sistema operativo.
• .NEt 3.5 es requerido. Algunas funcionalidades pueden requerir también .NET 4.0 o 4.5 CLR
Controles
La aplicación consta de diversos controles, se listarán a continuación incluyendo un breve resumen de su funcionalidad. Refiérase a la Recibe únicamente números octales como entrada, muestra el resultado de la operación
CAJA_TEXTO_HEXADECIMAL
Recibe únicamente números hexadecimales como entrada, muestra el resultado de la operación Figura 1: Controles de la Aplicación
BARRA_FORMULA
Situada en la parte superior de la hoja, aquí se observará el valor actual de la celda y se podrá confirmar los cambios a través de la tecla ENTER o cancelar los cambios a través de la tecla ESC.
Como sustituto a las teclas se podrá dar click al botón CONFIR_CAMBIOS
CONFIR_CAMBIOS
Situado a la izquierda de BARRA_FORMULA permite confirmar los cambios sin necesidad de presionar la tecla ENTER
CAJAS_TEXTO
Cada una de estas cajas consta de dos funcionalidades distintas i) Muestran el resultado de una operación, ii) Realizan la operación. Estas cajas solo pueden contener números con un formato especifico.
CAJA_TEXTO_DECIMAL
Recibe únicamente números decimales como entrada, muestra el resultado de la operación
CAJA_TEXTO_BINARIO
Recibe únicamente números binarios como entrada, muestra el resultado de la operación
CAJA_TEXTO_OCTAL
Recibe únicamente números octales como entrada, muestra el resultado de la operación
CAJA_TEXTO_HEXADECIMAL
Recibe únicamente números hexadecimales como entrada, muestra el resultado de la operación
Figura 1: Controles de la Aplicación
Modo de uso
Cómo realizar conversiones
Para realizar una operación, se ingresa el número en una de las cajas de texto, finalmente se confirman los cambios; La aplicación mostrará el resultado de la operación, véase Figura 2:
Ingresando datos y Figura 3: Re trans confirmar cambios
Figura 2: Ingresando datos
Figura 3: Resultados tras confirmar cambios
Errores
Si se ingresa un número no válido para la caja de texto en cuestión, la aplicación mostrará un mensaje de error indicando que no es del tipo que este recibe. Véase Figura 4: Ingreso de valores incorrectos y Figura 5: Mensaje de error tras ingresar datos erróneos
Figura 4: Ingreso de valores incorrectos
Figura 5: Mensaje de error tras ingresar datos erróneos
Conclusión
La conversión entre distintos sistemas de numeración se nos hace indispensable para poder comunicarnos con la mayoría de dispositivos electrónicos, puesto que estos almacenan la
información discreta en un sistema binario. No obstante, el sistema binario se torna rápidamente largo para que un humano lo pueda manejar, por tanto se recurren a sistemas de potencia común, como el octal y hexadecimal para resumir la misma información.
Apéndices
Sistemas de Numeración
Un sistema de numeración es un conjunto de símbolos y reglas de generación que permiten construir todos los números válidos. Los sistemas de numeración pueden clasificarse en dos grandes grupos: posicionales y no-posicionales
• En los sistemas no-posicionales los dígitos tienen el valor del símbolo utilizado, que no depende de la posición (columna) que ocupan en el número.
• En los sistemas de numeración ponderados o posicionales el valor de un dígito depende tanto del símbolo utilizado, como de la posición que ese símbolo ocupa en el número.
Los sistemas de numeración binario, octal, decimal, hexadecimal son sistemas de numeración posicionales, mientras que el sistema de numeración romana es un sistema de numeración no- posicional. En este escrito los sistemas de numeración posicional son los únicos de interés.
Sistemas de Numeración Posicional
Los sistemas de numeración posicional, son sistemas donde el valor de un número viene indicado por la multiplicación del dígito por la base del sistema elevada a una potencia dependiente de la posición del dígito. De aquí al nombre “Posicional”
Por ejemplo, el número 12510 es equivalente a 1 ∗ 102+ 2 ∗ 101+ 5 ∗ 100, puesto que el sistema de numeración es decimal, la base es 10. Los dígitos se multiplican por 10 y se elevan a una potencia dependiendo de su posición, las posiciones inician en 0, y se cuentan de derecha a izquierda.
Conversión entre Sistemas de Numeración Posicionales
Para explicar la teoría de conversión, nótese que multiplicar por la base del sistema es equivalente a agregar un cero, y “desplazar” a la izquierda el resto de dígitos. Lo mismo sucede al dividir, los dígitos se “desplazan” hacía la derecha, quedando como resto el último dígito. Así en el sistema de numeración decimal, al dividir por 10 se tiene:
Tabla 1: Algoritmo de Euclides
1253 % 10 = 125 r 3 125 % 10 = 12 r 5
12 % 10 = 1 r 2
1 % 10 = 0 r 1
Nótese que dividir sucesivamente el cociente de un número por la base del sistema, produce una cadena de restos equivalente al mismo número, pero con orden inverso. A este procedimiento se le denomina “Algoritmo de Euclides”. Y tiene relevancia por que nos permite hacer conversiones entre sistemas de numeración con suma facilidad. Incluso en hardware.
Decimal a Binario
Para convertir el número 125310 en binario, se debe aplicar el algoritmo de Euclides (véase Tabla 1: Algoritmo de Euclides). Pero, en lugar de dividir por 10 se debe dividir por la base del sistema deseado, en este caso 2, Así:
125 % 2 = 62 r 1 62 % 2 = 31 r 0 31 % 2 = 15 r 1
15 % 2 = 7 r 1
7 % 2 = 3 r 1 3 % 2 = 1 r 1 1 % 2 = 0 r 1
Así, la cadena de restos produce 1011111, al revertir el orden de la cadena, produce la conversión deseada 12510= 11111012
Decimal a Octal
Se emplea el Algoritmo de Euclides, utilizando como base destino el 8, Así:
125 % 8 = 15 r 5
15 % 8 = 1 r 7
1 % 8 = 0 r 1 Por ende, 12510= 1758
Decimal a Hexadecimal
Se emplea el Algoritmo de Euclides, utilizando como base destino el 16, Así:
125 % 16 = 7 r 13 7 % 16 = 0 r 7
Por ende, 12510= 7𝐷, la 𝐷es el símbolo que utiliza el sistema de numeración hexadecimal para representar 13, véase Tabla 2: Símbolos del Sistema Hexadecimal
Tabla 2: Símbolos del Sistema Hexadecimal
Número Símbolo
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
Binario a Octal
Puesto que la base para el sistema de numeración octal es 8 = 23, esto indica que, 3 dígitos en el sistema binario equivalen a uno en dígito en el sistema octal. Para convertir de octal a binario basta “agrupar” en grupos de 3 dígitos binarios, comenzando desde la izquierda, y luego convertir individualmente estos grupos a su equivalente en octal (véase Tabla 3: Binario a octal). Así
11111012 = 0012 1112 1012
= 187858
= 1758
Tabla 3: Binario a octal
Binario Octal
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Binario a Hexadecimal
Nótese que 16 = 24, esto indica que 4 dígitos binarios equivalen a un dígito en hexadecimal. La conversión es similar a la conversión Binario-Octal, pero en lugar de “agrupar” en grupos de 3, se hace en grupos de 4. Así:
11111012 = 01112 11012
= 716 D16
= 7D16
Tabla 4: Binario a hexadecimal
Binario Hexadecimal 0000 0
0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F
Octal a Binario
Para convertir de Octal a binario se hace el proceso inverso de Binario-Octal. Se expande cada octal, a su equivalente binario (véase Tabla 3: Binario a octal).
1758 = 187858
= 0012 1112 1012
= 11111012
Octal a Hexadecimal
No hay una conversión directa de Octal a Hexadecimal, puesto que sus bases no son potencias una de la otra. En su lugar se debe convertir a una base de potencia común, en este caso 2. Así, el
procedimiento consiste en expandir el número octal a binario, luego aplicar el procedimiento Binario-Hexadecimal.
Así
1758 = 187858
= 0012 1112 1012
= 11111012
= 01112 11012
= 716D16
= 7D16
Hexadecimal a Binario
Véase Octal-Binario y Binario-Hexadecimal
Hexadecimal a Octal
Véase Octal-Hexadecimal
Binario, Octal, Hexadecimal a Decimal
Para convertir de un sistema cualquiera, basta tomar el dígito y multiplicar la base a la potencia de la posición que este ocupa, Así
Binario-Decimal
1101112 = 1 ⋅ 25+ 1 ⋅ 24+ 0 ⋅ 23+ 1 ⋅ 22+ 1 ⋅ 21+ 1 ⋅ 20
= 5510
Octal-Decimal
10648 = 1 ⋅ 83+ 0 ⋅ 82+ 6 ⋅ 81+ 4 ⋅ 80
= 56410
Hexadecimal-Decimal
𝐷𝐸116 = D ⋅ 162+ E ⋅ 161+ 1 ⋅ 160
= 13 ⋅ 162+ 14 ⋅ 161+ 1 ⋅ 160
= 355310
Documentación del Programa Funciones utilizadas
La aplicación no utiliza ninguna función provista por el marco de Excel, si no depende
exclusivamente de las funciones incorporadas de la plataforma, en este caso “Visual Basic for Applications”.
Nombre CLngLng
Descripción Convierte una cadena de caracteres a un entero con signo de 8 bytes (LongLong). El analizador reconoce los sistemas de numeración binario, octal, decimal y hexadecimal.
Sintaxis CLngLng(string)
Nombre Oct
Descripción Convierte un entero del tipo LongLong a su representación en octal
Sintaxis Oct(longlong)
Nombre Hex
Descripción Convierte un entero del tipo LongLong a su representación en hexadecimal
Sintaxis Hex(longlong)
Nombre Cstr
Descripción Convierte un entero del tipo LongLong a su representación en decimal
Sintaxis Cstr(longlong)
Referencias
Microsoft. (2017). Office 2016 system requirements: Microsoft Support. Obtenido de https://support.microsoft.com/en-gb/help/4026853/office-office-2016-system- requirements
Microsoft. (2018). Hex function: Office 365 dev account. Obtenido de
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface- help/hex-function
Microsoft. (2018). Type conversion functions: Office 365 dev account. Obtenido de
https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/type- conversion-functions
Wikipedia. (2019). Algoritmo de Euclides: Wikipedia Community. Obtenido de https://es.wikipedia.org/wiki/Algoritmo_de_Euclides
Wikipedia. (2019). Sistema de numeración: Wikipedia Community. Obtenido de https://es.wikipedia.org/wiki/Sistema_de_numeración