Conversión de Sistemas Numéricos (Circuitos Lógicos) PDF

Title Conversión de Sistemas Numéricos (Circuitos Lógicos)
Author Montserrat Ramirez
Course Circuitos logicos
Institution Universidad Autónoma Benito Juárez de Oaxaca
Pages 14
File Size 328.8 KB
File Type PDF
Total Downloads 30
Total Views 134

Summary

Conversión de Sistemas Numéricos (Circuitos Lógicos)...


Description

Reporte del Programa de conversión de Sistemas Numéricos

Circuitos Lógicos

Alumnos: Manuel Arturo Olivé Mendoza

Profesor: Víctor Bolaños

Ingeniería en Electrónica y Telecomunicaciones

Universidad La Salle Oaxaca

Escuela de Ingenierías y Arquitectura

Santa Cruz Xoxocotlán, Oax.

INTRODUCCIÓN El objetivo de este reporte es el de presentar la forma en la que se realizó y la finalidad de un programa que sirve para convertir números decimales en otros sistemas numéricos que son el binario, el octal, el hexadecimal y viceversa, por medio del lenguaje de programación de Java.

MARCO TEÓRICO Sistema Numérico: Es un conjunto de símbolos y reglas que se utilizan para representar datos numéricos o cantidades. Se caracterizan por su base que indican el número de símbolos distinto que utiliza y además es el coeficiente que determina cual es el valor de cada símbolo dependiendo de la posición que ocupe. Estas cantidades se caracterizan por tener dígitos enteros y fraccionarios. Decimal: Este es el sistema que manejamos cotidianamente, está formado por diez símbolos {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} por lo tanto la base del sistema es diez (10). Binario: Es el sistema que utiliza internamente el hardware de las computadoras actuales, se basa en la representación de cantidades utilizando los dígitos 1 y 0. Por tanto su base es 2 (número de dígitos del sistema). Cada dígito de un número en este sistema se denomina bit (contracción de binary digit). Octal: El sistema numérico octal utiliza ocho símbolos o dígitos para representar cantidades y cifras numéricas. Los dígitos son: {0, 1, 2, 3, 4, 5, 6, 7}; la base de éste es ocho (8). Hexadecimal: El sistema numérico hexadecimal utiliza dieciséis dígitos y letras para representar cantidades y cifras numéricas. Los símbolos son: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}; la base del sistema es dieciséis (16). Lenguaje de programación Java: Es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems.

PLANTEAMIENTO DEL PROBLEMA Una vez aprendido a convertir los números decimales a binario, octal y hexadecimal de manera manual, el problema a resolver es el de generar un código que haga esas mismas operaciones para que el proceso de conversión sea más rápido y eficiente.

DESARROLLO Lo primero que se hizo fue seleccionar el lenguaje de programación con el cual se iba a realizar el programa, dicho lenguaje en cuestión fue Java, aprovechando los conocimientos aprendidos de la materia de Programación Visual. El programa se pensó para que funcionara en forma de un pequeño menú donde el usuario podía elegir la opción que más necesitara, esto quedó de la siguiente manera (El código completo estará en el anexo):

Donde dependiendo de la opción ingresada por el usuario este podrá elegir a qué tipo de sistema numérico podrá convertir los decimales y viceversa.

Esto es el programa de manera gráfica, con respecto a la estructura del código para hacer funcional el menú se utilizó una función “if” que consiste en una sentencia condicional donde dependiendo del valor dado realizara una acción.

Esto se realizó con todos los submenús por lo que es un proceso relativamente simple. A su vez se usó una sentencia “while” que tiene la misma función que el “if” esto se usó con el fin de ciclar el menú y que siempre que se realizara una operación retornara de nuevo al principio las veces necesarias que el usuario lo necesite.

Para el caso de las operaciones matemáticas de conversión se plasmó lo aprendido en el lenguaje de programación de manera que el programa pudiera realizar las operaciones pertinentes considerando todas las posibles opciones para cada caso. En la conversión de binario a decimal se hizo lo siguiente:

De manera similar se hizo con el sistema octal:

Y para finalizar el sistema hexadecimal que resulto un poco más complejo que los anteriores a la hora de desarrollar su algoritmo.

CONCLUSIÓN A pesar de contar con una herramienta que realice todas las conversiones de manera correcta y en poco tiempo es necesario saber cómo realizar las conversiones de manera manual ya que no siempre se va a tener a la mano este tipo de herramientas para realizar los cálculos pertinentes sin mencionar que para realizar todos estos cálculos en un programa es necesario saberlos realizar de manera manual.

BIBILIOGRAFIA Sistema Numérico recuperado www.uacj.mx/CGTI/CDTE/JPM/.../IIT/sistemas_numericos/.../sistemasnumericos.htm

de

¿Qué es Java? https://www.java.com/es/download/faq/whatis_java.xml

de

Recuperado

ANEXO Código completo: public class MENUUU { public static int hexa(String s) { String digitos = "0123456789ABCDEF"; s = s.toUpperCase(); int val = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); //Devuelve el caracter en la posicion i int d = digitos.indexOf(c); //Llama a una subcadena val = 16 * val + d; } return val; /**

* @param args the command line arguments */ } public static void main(String[] args) { Scanner entrada= new Scanner(System.in); int numero; System.out.println("Selecciona la base: "); System.out.println("1)Decimal: "); System.out.println("2)Binario: "); System.out.println("3)Octal: "); System.out.println("4)Hexadecimal: "); int opcion=entrada.nextInt(); if(opcion==1){ System.out.println("Ingresa el numero decimal: "); numero=entrada.nextInt(); int exp = 0, digito; //Variables para los valores double binario = 0; //Valor para el resultado do { } while (numero < 0); while (numero != 0) { digito = numero % 2; //Saca el residuo de la division del digito entre el numero dos binario = binario + digito * Math.pow(10, exp);//Multiplica 10 con su respectivo exponente por el cociente del digito exp++; numero = numero / 2;

} System.out.printf("Binario: %.0f %n\n", binario); //Muestra el resultado sin punto decimal

int dijito, i = 1; int octal[] = new int[100]; System.out.println("Introduce el numero decimal: "); numero = entrada.nextInt(); dijito = numero; while (dijito != 0) { octal[i++] = dijito % 8; dijito = dijito / 8; } System.out.print("Octal: \n"); for (int j = i - 1; j > 0; j--) { System.out.println(octal[j]); } int decimal, auxiliar; String hexadecimal = ""; char digitos[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; System.out.println("Ingrese el numero decimal: "); decimal = entrada.nextInt(); while (decimal > 0) { auxiliar = decimal % 16; hexadecimal = digitos[auxiliar] + hexadecimal;

decimal = decimal / 16; } System.out.println("Hexadecimal: " + hexadecimal);

} if(opcion==2){ long numero2, aux, digito, decimal; int exponente; boolean Binario; //Lee el número ingresado por el teclado y comproueba que es binario do { System.out.println("Introduce un numero binario: "); numero2 = entrada.nextLong(); Binario = true; aux = numero2; while (aux != 0) { digito = aux % 10; //Se obtiene la ulltima cifra de los numeros if (digito != 0 && digito != 1) { Binario = false; } aux = aux / 10; //Se quita la última cifra para repetir el proceso } } while (!Binario); //Se vuelve a pedir si no es binario exponente = 0; decimal = 0; //será el equivalente en base decimal

while (numero2 != 0) { digito = numero2 % 10; //se toma la última cifra //se multiplica por la potencia de 2 correspondiente y se suma al número decimal = decimal + digito * (int) Math.pow(2, exponente); exponente++; numero2 = numero2 / 10; } System.out.println("Decimal: " + decimal); int dijito2, i = 1; int octal[] = new int[100]; //System.out.println("Introduce el numero decimal: "); //decimal = entrada.nextInt(); dijito2 = (int) decimal; while (dijito2 != 0) { octal[i++] = dijito2 % 8; dijito2 = dijito2 / 8; } System.out.print("Octal: \n"); for (int j = i - 1; j > 0; j--) { System.out.println(octal[j]); } int auxiliar=0; String hexadecimal = ""; char digitos[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

//System.out.println("Ingrese el numero decimal: "); //decimal = entrada.nextInt(); while (decimal > 0) { auxiliar = (int) (decimal % 16); hexadecimal = digitos[auxiliar] + hexadecimal; decimal = decimal / 16; } System.out.println("Hexadecimal: " + hexadecimal); } if(opcion==3){ int octal, decimal = 0, exp = 0, valor; System.out.println("Ingrese el numero en octal: "); octal = entrada.nextInt(); valor = octal; while (octal != 0) { decimal = decimal + (octal % 10) * (int) Math.pow(8, exp); exp++; octal = octal / 10; } System.out.println("Decimal: " + decimal); int digito; double binario = 0; do { //System.out.println("Introduce un numero entero: "); //numero = entrada.nextInt();

} while (decimal < 0); while (decimal != 0) { digito = decimal % 2; //Saca el residuo de la division del digito entre el numero dos binario = binario + digito * Math.pow(10, exp);//Multiplica 10 con su respectivo exponente por el cociente del digito exp++; decimal = decimal / 2; } System.out.printf("Binario: %.0f %n\n", binario); int auxiliar; String hexadecimal = ""; char digitos[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; //System.out.println("Ingrese el numero decimal: "); //decimal = entrada.nextInt(); while (decimal > 0) { auxiliar = decimal % 16; hexadecimal = digitos[auxiliar] + hexadecimal; decimal = decimal / 16; } System.out.println("Hexadecimal: " + hexadecimal); } if(opcion==4){ String hex; int decimal;

System.out.println("Ingrese el numero hexadecimal: "); hex = entrada.next(); decimal = hexa(hex); System.out.println("Decimal: " + decimal); int exp = 0, digito; //Variables para los valores double binario = 0; //Valor para el resultado do { //System.out.println("Introduce un numero entero: "); //numero = entrada.nextInt(); } while (decimal < 0); while (decimal != 0) { digito = decimal % 2; //Saca el residuo de la division del digito entre el numero dos binario = binario + digito * Math.pow(10, exp);//Multiplica 10 con su respectivo exponente por el cociente del digito exp++; decimal = decimal / 2; } System.out.printf("Binario: %.0f %n\n", binario); //Muestra el resultado sin punto decimal int dijito, i = 1; int octal[] = new int[100]; //System.out.println("Introduce el numero decimal: "); //decimal = entrada.nextInt(); dijito = decimal; while (dijito != 0) {

octal[i++] = dijito % 8; dijito = dijito / 8; } System.out.print("Octal: \n"); for (int j = i - 1; j > 0; j--) { System.out.println(octal[j]); } } }...


Similar Free PDFs