Академический Документы
Профессиональный Документы
Культура Документы
La mquina de Von Neumann tena 5 partes bsicas: La memoria, la unidad Aritmtica lgica, la unidad de control del programa y los equipos de entrada y salida. La memoria constaba de 4096 palabras, cada una con 40 bits (0 o 1). Cada palabra poda contener 2 instrucciones de 20 bits o un nmero entero de 39 bits y su signo. Las instrucciones tenan 8 bits dedicados a sealar el tiempo de la misma y 12 bits para especificar alguna de las 4096 palabras de la memoria. Dentro de la unidad aritmtica - lgica, el antecedente directo actual CPU (Unidad central de Proceso), haba un registro interno especial de 40 bits llamado en acumulador. Una instruccin tpica era sumar una palabra de la memoria al acumulador o almacenar ste en la memoria. La mquina no manejaba la aritmtica de punto flotante, porque Von Neumann pensaba que cualquier matemtico competente debera ser capaz de llevar la cuenta del punto decimal (en este caso del punto binario), mentalmente. Un elemento importante del hardware de la PC es la unidad del sistema, que contiene una tarjeta de sistema, fuente de poder y ranuras de expansin para tarjetas opcionales. Los elementos de la tarjeta de sistema son un microprocesador, memoria de solo lectura (ROM) y memoria de acceso aleatorio (RAM). El cerebro de la PC y compatibles es un microprocesador basado en la familia 8086 de Intel, que realiza todo el procesamiento de datos e instrucciones. Los procesadores varan en velocidad y capacidad de memoria, registros y bus de datos. Un bus de datos transfiere datos entre el procesador, la memoria y los dispositivos externos. Aunque existen muchos tipos de computadoras digitales segn se tenga en cuenta su tamao, velocidad de proceso, complejidad de diseo fsico, etc., los principios fundamentales bsicos de funcionamiento son esencialmente los mismos en todos ellos. Se puede decir que una computadora est formada por tres partes fundamentales, aunque una de ellas es subdividida en dos partes no menos importantes. En la figura 1.2 se muestran dichas partes, llamadas genricamente unidades funcionales debido a que, desde el punto de vista del funcionamiento, son independientes.
Figura 1.2.- Unidades Funcionales de la computadora El nombre de cada parte nos indica la funcin que realiza. As, la Unidad Central de Proceso (CPU) es la que coordina el funcionamiento conjunto de las dems unidades y realiza los clculos necesarios; por eso la podemos subdividir en una Unidad de Control (UC) y en una unidad de clculo o Unidad Aritmtico-Lgica (UAL). La unidad de Memoria Principal (MP) se encarga de almacenar las instrucciones que realizar la Unidad de Control al ejecutar un programa y los datos que sern procesados. La Unidad de Entradas y Salidas ser la encargada de la comunicacin con el exterior a travs de los perifricos. Estos perifricos pueden ser: de entrada, como los teclados; de salida, como los tubos de rayos catdicos, y de entrada y salida, como los discos magnticos. Unidad de Memoria Principal La memoria principal est formada por un conjunto de unidades llamadas palabras. Dentro de cada una de estas palabras se guarda la informacin que constituye una instruccin o parte de ella (puede darse el caso de que una sola instruccin necesite varia palabras), o un dato o parte de un dato (tambin un dato puede ocupar varias palabras). A la cantidad de palabras que forman la MP se le denomina capacidad de memoria. De este modo, cuanto mayor sea el nmero de palabras mayor ser el nmero de instrucciones y datos que podr almacenar la computadora. Una palabra est formada a su vez de unidades ms elementales llamadas bits, del mismo modo que en el lenguaje natural una palabra est formada por letras. Cada bit solo puede guardar dos valores, el valor 0 o el valor 1; por eso se dice que son elementos binarios. El nmero de bits que forman una palabra se llama longitud de palabra. Por regla general, las computadoras potentes tienen memorias con longitud de palabra grande, mientras que las computadoras pequeas tienen memorias con longitud de palabra menor. En la figura 1.3 se muestra cmo se puede estar organizada una Memoria Principal.
Figura 1.3.- Organizacin de una unidad de memoria Ya se ha visto en las secciones precedentes cmo funcionan la CPU y la MP, pero puede decirse que es necesaria la comunicacin entre el interior de la computadora y su entorno o periferia. Esta comunicacin se consigue a travs de dispositivos de muy diversos tipos, como son: teclados, impresoras, pantallas, discos magnticos, etc. Es estos dispositivos se les conoce con el nombre genrico de perifricos. En la figura 1.4 se muestran algunos perifricos conectados a la Unidad de E/S, la cual hace de intermediaria entre los perifricos y la CPU. Las flechas indican el sentido en que fluye la informacin. , la cual hace de intermediaria entre los perifricos y la CPU. Las flechas indican el sentido en que fluye la informacin.
Figura 1.4.- La unidad de entrada y salida hace de intermediaria entre la UCP y los perifricos.
La coordinacin de la comunicacin entre los perifricos y la CPU la realiza la Unidad de E/S. Obsrvese que esta no es un perifrico sino un dispositivo que gestiona a los perifricos siguiendo las rdenes de la CPU; es decir, la Unidad de E/S recibe de la Unidad de Control informacin sobre el tipo de transferencia de datos que debe realizar (si es de entrada o de salida) y perifrico que debe de utilizar; si es de salida recibir tambin el dato que debe enviar y el momento de la operacin. Entonces, la Unidad de E/S seleccionara el perifrico y ejecutara la operacin teniendo en cuanta las caractersticas propias de cada perifrico. Una vez ejecutada la orden avisara a la UC de la terminacin de la transferencia. Cada perifrico o parte de un perifrico tendr asignado un numero o direccin que servir para identificarlo. Cuando la UC quiera seleccionarlo enviara dicho nmero a la Unidad de E/S.
Representacin BCD.
Cada dgito decimal tiene una representacin binaria codificada con 4 bits: Decimal: 0 1 2 3 4 5 6 7 8 9 BCD: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Los nmeros decimales, se codifican en BCD con los de bits que representan sus dgitos. Por ejemplo, la codificacin en BCD del nmero decimal 59237 es: Decimal: 5 9 2 3 7 BCD: 0101 1001 0010 0011 0111 La representacin anterior (en BCD) es diferente de la representacin del mismo nmero decimal en binario puro: 11100111 01100101.
Fundamentos.
En BCD cada cifra que representa un dgito decimal (0, 1,...8 y 9) se representa con su equivalente binario en cuatro bits (nibble o cuarteto) (esto es as porque es el nmero de bits necesario para representar el nueve, el nmero ms alto que se puede representar en BCD). En la siguiente tabla se muestran los cdigos BCD ms empleados: Exceso Decimal Natural Aiken 5 4 2 1 3 0 0000 0000 0000 0011
1 2 3 4 5 6 7 8 9
Como se observa, con el BCD slo se utilizan 10 de las 16 posibles combinaciones que se pueden formar con nmeros de 4 bits, por lo que el sistema pierde capacidad de representacin, aunque se facilita la compresin de los nmeros. Esto es porque el BCD slo se usa para representar cifras, no nmeros en su totalidad. Esto quiere decir que para nmeros de ms de una cifra hacen falta dos nmeros BCD. Una forma sencilla de calcular nmeros en BCD es sumando normalmente bit a bit, y si el conjunto de 4 bits sobrepasa el nmero 9, entonces se le suma un 6 (0110) en binario, para poder volver a empezar, como si hiciramos un mdulo al elemento sumante. Desde que los sistemas informticos empezaron a almacenar los datos en conjuntos de ocho bits (octeto), hay dos maneras comunes de almacenar los datos BCD: Omisin de los cuatro bits ms significativos (como sucede en el EBCDIC)
Almacenamiento de dos datos BCD; es el denominado BCD "empaquetado", en el que tambin se incluye en primer lugar el signo, por lo general con 1100 para el + y 1101 para el -. De este modo, el nmero 127 sera representado como (11110001, 11110010, 11110111) en el EBCDIC o (00010010, 01111100) en el BCD empaquetado. El BCD sigue siendo ampliamente utilizado para almacenar datos, en aritmtica binaria o en electrnica. Los nmeros se pueden mostrar fcilmente en visualizadores de siete segmentos enviando cada cuarteto BCD a un visualizador. La BIOS de un ordenador personal almacena generalmente la fecha y la hora en formato BCD; probablemente por razones histricas se evit la necesidad de su conversin en ASCII. La ventaja del cdigo BCD frente a la representacin binaria clsica es que no hay lmite para el tamao de un nmero. Los nmeros que se representan en formato binario estn generalmente limitados por el nmero mayor que se pueda representar con 8, 16, 32 o 64 bits. Por el contrario, utilizando BCD, aadir un nuevo dgito slo implica aadir una nueva secuencia de 4 bits.
IMPORTANTE:
Algunos textos indican que una vez adicionado el 3 a cada digito se debe transformar a BCD, esto es incorrecto. La transformacin se hace directamente a binario. (Recomiendo retirar este error. En la primera parte se afirma para luego ser negada en "IMPORTANTE": esto se presta a confusin. Un texto que afirma eso, contrario a otros, simplemente no es buena fuente. Quizs fue producto de una mala interpretacin)
El BCD en electrnica.
El BCD es muy comn en sistemas electrnicos donde se debe mostrar un valor numrico, especialmente en los sistemas digitales no programados (sin microprocesador o micro controlador). Utilizando el cdigo BCD, se simplifica la manipulacin de los datos numricos que deben ser mostrados por ejemplo en un visualizador de siete segmentos. Esto lleva a su vez una simplificacin en el diseo fsico del circuito (hardware). Si la cantidad numrica fuera almacenada y manipulada en binario natural, el circuito sera mucho ms complejo que si se utiliza el BCD. Hay un programa que se llama b1411 que sirve para dividir al sistema binario en dos combinaciones. Una por ejemplo es la de sistemas digitales.
IBM y el BCD.
IBM utiliz los trminos decimal codificado en binario y BCD para el cdigo binario de seis bits con el que representaron nmeros, letras maysculas y caracteres especiales. Una variante del BCD fue utilizada en la mayora de las primeras computadoras de IBM, incluyendo IBM1620 e IBM 1400. Con la introduccin de System/360, el BCD fue substituido por el EBCDIC, de ocho bits. Las posiciones de los bits, en el BCD de seis bits, generalmente fueron etiquetadas como B, A, 8, 4, 2 y 1. Para codificar los dgitos numricos, A y B eran cero. La letra A fue codificada como (B, A, 1).
Historia legal.
En 1972, el Tribunal Supremo de Estados Unidos anul la decisin de una instancia ms baja de la corte que haba permitido una patente para convertir nmeros codificados BCD a binario en una computadora (vase Gottschalk v Benson en ingls). Este fue uno de los primeros casos importantes en la determinacin de la patentabilidad del software y de los algoritmos.
Cdigo binario.
El cdigo binario es el sistema de representacin de textos, o procesadores de instrucciones de computadora utilizando el sistema binario (sistema numrico de dos dgitos, o bit: el "0" (cerrado) y el "1" (abierto)). En informtica y telecomunicaciones, el cdigo binario se utiliza con variados mtodos de codificacin de datos, tales como cadenas de caracteres, o cadenas de bits. Estos mtodos pueden ser de ancho fijo o ancho variable. Por ejemplo en el caso de un CD, las seales que reflejarn el "lser" que rebotar en el CD y ser recepcionado por un sensor de distinta forma indicando as, si es un cero o un uno. En un cdigo binario de ancho fijo, cada letra, dgito, u otros smbolos, estn representados por una cadena de bits de la misma longitud, como un nmero binario que, por lo general, aparece en las tablas en notacin octal, decimal o hexadecimal. Segn Antn Glaser, en su History of Binary and other Non decimal Numeration, comenta que los primeros cdigos binarios se utilizaron en el ao 1932: C.E. Wynn-Williams ("Scale of Two"), posteriormente en 1938: Atanasoff-Berry Computer, y en 1939: Stibitz ("excess three") el cdigo en Complex Computer. Es frecuente tambin ver la palabra bit referida bien a la ausencia de seal, expresada con el dgito "0", o bien referida a la existencia de la misma, expresada con el dgito "1". El byte es un grupo de 8 bits, es decir en l tenemos 256 posibles estados binarios.
Ponderacin.
La mayora de los sistemas de numeracin actuales son ponderados, es decir, cada posicin de una secuencia de dgitos tiene asociado un peso. El sistema binario es, de hecho, un sistema de numeracin posicional ponderado. Sin embargo, algunos cdigos binarios, como el cdigo Gray, no son ponderados, es decir, no tienen un peso asociado a cada posicin. Otros, como el mismo cdigo binario natural o el BCD natural s lo son.
Distancia.
La distancia es una caracterstica slo aplicable a las combinaciones binarias. La distancia entre dos combinaciones es el nmero de bits que cambian de una a otra. Por ejemplo, si se tienen las combinaciones de cuatro bits 0010 y 0111, correspondientes al 2 y al 7 en binario natural, se dir que la distancia entre ellas es igual a dos ya que de una a otra cambian dos bits. Adems, con el concepto de distancia se puede definir la distancia mnima de un cdigo. sta no es ms que la distancia menor que haya entre dos de las combinaciones de ese cdigo. La distancia es una caracterstica que, adems, slo aplica las combinaciones binarias. En resumen, la distancia entre dos combinaciones es el nmero de bits que cambian de una a otra.
Continuidad.
La continuidad es una caracterstica de los cdigos binarios que cumplen que todas las posibles combinaciones del cdigo son adyacentes, es decir, que de cualquier combinacin del cdigo a la siguiente cambia un slo bit. En este caso se dice que el cdigo es continuo. Cuando la ltima combinacin del cdigo es, a su vez, adyacente a la primera, se trata de un cdigo cclico.
Autocomplementariedad.
Se dice que un cdigo binario es autocomplementario cuando el complemento a 9 del equivalente decimal de cualquier combinacin del cdigo puede hallarse invirtiendo los valores de cada uno de los bits (operacin lgica unaria de negacin) y el resultado sigue siendo una combinacin vlida en ese cdigo. Esta caracterstica se observa en algunos cdigos BCD, como el cdigo Aiken o el cdigo BCD exceso 3. Los cdigos autocomplementarios facilitan las operaciones aritmticas.
posiblemente, el mtodo del bit de paridad. En cuanto a los cdigos correctores, destacan algunos como el cdigo de Hamming. El sistema binario, en matemticas e informtica, es un sistema de numeracin en el que los nmeros se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeracin natural es el sistema binario (encendido 1, apagado 0).
Aplicaciones.
En 1937, Claude Shannon realiz su tesis doctoral en el MIT, en la cual implementaba el lgebra de Boole y aritmtica binaria utilizando rels y conmutadores por primera vez en la historia. Titulada Un Anlisis Simblico de Circuitos Conmutadores y Rels, la tesis de Shannon bsicamente fund el diseo prctico de circuitos digitales. En noviembre de 1937, George Stibitz, trabajando por aquel entonces en los Laboratorios Bell, construy una computadora basada en rels a la cual apod "Modelo K" (porque la construy en una cocina, en ingls "kitchen") que utilizaba la suma binaria para realizar los clculos. Los Laboratorios Bell autorizaron un completo programa de investigacin a finales de 1938, con Stibitz al mando. El 8 de enero de 1940 terminaron el diseo de una "Calculadora de Nmeros Complejos", la cual era capaz de realizar clculos con nmeros complejos. En una demostracin en la conferencia de la Sociedad Americana de Matemticas, el 11 de septiembre de 1940, Stibitz logr enviar comandos de manera remota a la Calculadora de Nmeros Complejos a travs de la lnea telefnica mediante un teletipo. Fue la primera mquina computadora utilizada de manera remota a travs de la lnea de telfono. Algunos participantes de la conferencia que presenciaron la demostracin fueron John von Neumann, John Mauchly y Norbert Wiener, quien escribi acerca de dicho suceso en sus diferentes tipos de memorias en la cual alcanz diferentes logros.
Representacin.
Un nmero binario puede ser representado por cualquier secuencia de bits (dgitos binarios), que suelen representar cualquier mecanismo capaz de estar en dos estados mutuamente excluyentes. Las siguientes secuencias de smbolos podran ser interpretadas como el mismo valor numrico binario: 1010011010 |-|--||-|Xoxooxxoxo Ynynnyynyn
El valor numrico representado en cada caso depende del valor asignado a cada smbolo. En una computadora, los valores numricos pueden representar dos voltajes diferentes; tambin pueden indicar polaridades magnticas sobre un disco magntico. Un "positivo", "s", o "sobre el estado" no es necesariamente el equivalente al valor numrico de uno; esto depende de la nomenclatura usada. De acuerdo con la representacin ms habitual, que es usando nmeros rabes, los nmeros binarios comnmente son escritos usando los smbolos 0 y 1. Los nmeros binarios se escriben a menudo con subndices, prefijos o sufijos para indicar su base. Las notaciones siguientes son equivalentes: 100101 binario (declaracin explcita de formato) 100101b (un sufijo que indica formato binario) 100101B (un sufijo que indica formato binario) Bin 100101 (un prefijo que indica formato binario) 1001012 (un subndice que indica base 2 (binaria) notacin) %100101 (un prefijo que indica formato binario) 0b100101 (un prefijo que indica formato binario, comn en lenguajes de programacin)
Ejemplo:
Transformar el nmero decimal 131 en binario. El mtodo es muy simple: 131 dividido entre 2 da 65 y el resto es igual a 1 65 dividido entre 2 da 32 y el resto es igual a 1 32 dividido entre 2 da 16 y el resto es igual a 0 16 dividido entre 2 da 8 y el resto es igual a 0 8 dividido entre 2 da 4 y el resto es igual a 0 4 dividido entre 2 da 2 y el resto es igual a 0 2 dividido entre 2 da 1 y el resto es igual a 0 1 dividido entre 2 da 0 y el resto es igual a 1 Ordenamos los restos, del ltimo al primero: 10000011 En sistema binario, 131 se escribe 10000011
Ejemplo.
Transformar el nmero decimal 100 en binario. Otra forma de conversin consiste en un mtodo parecido a la factorizacin en nmeros primos. Es relativamente fcil dividir cualquier nmero entre 2. Este mtodo consiste tambin en divisiones sucesivas. Dependiendo de si el nmero es par o impar, colocaremos un cero o un uno en la columna de la derecha. Si es impar, le restaremos uno y seguiremos dividiendo entre dos, hasta llegar a 1. Despus slo nos queda tomar el ltimo resultado de la columna izquierda (que siempre ser 1) y todos los de la columna de la derecha y ordenar los dgitos de abajo a arriba. Ejemplo
100|0 50|0 25|1 --> 1, 25-1=24 y seguimos dividiendo entre 2 12|0 6|0 3|1 1|1 --> .
Existe un ltimo mtodo denominado de distribucin. Consiste en distribuir los unos necesarios entre las potencias sucesivas de 2 de modo que su suma resulte ser el nmero decimal a convertir. Sea por ejemplo el nmero 151, para el que se necesitarn las 8 primeras potencias de 2, ya que la siguiente, 28=256, es superior al nmero a convertir. Se comienza poniendo un 1 en 128, por lo que an faltarn 23, 151-128 = 23, para llegar al 151. Este valor se conseguir distribuyendo unos entre las potencias cuya suma d el resultado buscado y poniendo ceros en el resto. En el ejemplo resultan ser las potencias 4, 2, 1 y 0, esto es, 16, 4, 2 y 1, respectivamente. Ejemplo 20= 1|1 21= 2|0 22= 4|0 23= 8|0 24= 16|0 25= 32|0 26= 64|0 27= 128|0
Ejemplo:
0,3125 (decimal) => 0,0101 (binario). Proceso: 0,3125 2 = 0,625 => 0 0,625 2 = 1,25 => 1 0,25 2 = 0,5 => 0 0,5 2 = 1 => 1 En orden: 0101 -> 0,0101 (binario).
Ejemplo 0,1 (decimal) => 0,0 0011 0011... (Binario). Proceso: 0,1 2 = 0,2 ==> 0 0,2 2 = 0,4 ==> 0 0,4 2 = 0,8 ==> 0 0,8 2 = 1,6 ==> 1 0,6 2 = 1,2 ==> 1 0,2 2 = 0,4 ==> 0 <--se repiten las cuatro cifras, peridicamente 0,4 2 = 0,8 ==> 0 <0,8 2 = 1,6 ==> 1 <0,6 2 = 1,2 ==> 1 <-... En orden: 0 0011 0011... => 0,0 0011 0011... (Binario peridico)
Ejemplo:
5.5 = 5,5
5,5 (decimal) => 101,1 (binario). Proceso: 5 => 101 0,5 2 = 1 => 1 En orden: 1 (un slo dgito fraccionario) -> 101,1 (binario)
Ejemplo:
6,83 (decimal) => 110,110101000111 (binario). Proceso: 6 => 110 0,83 2 = 1,66 => 1 0,66 2 = 1,32 => 1 0,32 2 = 0,64 => 0 0,64 2 = 1,28 => 1 0,28 2 = 0,56 => 0 0,56 2 = 1,12 => 1 0,12 2 = 0,24 => 0 0,24 2 = 0,48 => 0 0,48 2 = 0,96 => 0 0,96 2 = 1,92 => 1 0,92 2 = 1,84 => 1 0,84 2 = 1,68 => 1 En orden: 110101000111 (binario) Parte entera: 110 (binario) Encadenando parte entera y fraccionaria: 110,110101000111 (bina
Binario a decimal.
Para realizar la conversin de binario a decimal, realice lo siguiente: Inicie por el lado derecho del nmero en binario, cada cifra multiplquela por 2 elevado a la potencia consecutiva (comenzando por la potencia 0, 20). Despus de realizar cada una de las multiplicaciones, sume todas y el nmero resultante ser el equivalente al sistema decimal.
Ejemplos:
(Los nmeros de arriba indican la potencia a la que hay que elevar 2)Tambin se puede optar por utilizar los valores que presenta cada posicin del nmero binario a ser transformado, comenzando de derecha a izquierda, y sumando los valores de las posiciones que tienen un 1.
Ejemplo:
El nmero binario 1010010 corresponde en decimal al 82. Se puede representar de la siguiente manera: Entonces se suman los nmeros 64, 16 y 2: Para cambiar de binario con decimales a decimal se hace exactamente igual, salvo que la posicin cero (en la que el dos es elevado a la cero) es la que est a la izquierda de la coma y se cuenta hacia la derecha a partir de -1:
Ejemplos:
0,101001 (binario) = 0,640625(decimal). Proceso:
1 2 elevado a -1 = 0,5 0 2 elevado a -2 = 0 1 2 elevado a -3 = 0,125 0 2 elevado a -4 = 0 0 2 elevado a -5 = 0 1 2 elevado a -6 = 0,015625 La suma es: 0,640625.
Ejemplo:
0.110111 (binario) = 0,859375(decimal). Proceso: 1 2 elevado a -1 = 0,5 1 2 elevado a -2 = 0,25 0 2 elevado a -3 = 0 1 2 elevado a -4 = 0,0625 1 2 elevado a -5 = 0,03125 1 2 elevado a -6 = 0,015625 La suma es: 0,859375
1-1=0 0 - 1 = 1 (se transforma en 10 - 1 = 1) (en sistema decimal equivale a 2 - 1 = 1) La resta 0 - 1 se resuelve igual que en el sistema decimal, tomando una unidad prestada de la posicin siguiente: 0 - 1 = 1 y me llevo 1, lo que equivale a decir en el sistema decimal, 2 - 1 = 1. Ejemplos 10001 11011001 -01010 -10101011 00111 00101110 En sistema decimal sera: 17 - 10 = 7 y 217 - 171 = 46. Para simplificar las restas y reducir la posibilidad de cometer errores hay varios mtodos: Dividir los nmeros largos en grupos. En el siguiente ejemplo, vemos cmo se divide una resta larga en tres restas cortas: 100110011101 1001 1001 1101 -010101110010 -0101 -0111 -001 = 010000101011 0100 0010 1011 Utilizando el complemento a dos (C2). La resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Ejemplo La siguiente resta, 91 - 46 = 45, en binario es: 1011011 1011011 -0101110 el C2 de 0101110 es 1010010 +1010010 0101101 10101101 En el resultado nos sobra un bit, que se desborda por la izquierda. Pero, como el nmero resultante no puede ser ms largo que el minuendo, el bit sobrante se desprecia. Un ltimo ejemplo: vamos a restar 219 - 23 = 196, directamente y utilizando el complemento a dos: 11011011 11011011 -00010111 el C2 de 00010111 es 11101001 +11101001 11000100 111000100 Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto: 11000100 en binario, 196 en decimal. Utilizando el complemento a uno. La resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a uno del sustraendo y a su vez sumarle el bit que se desborda.
En sistemas electrnicos, donde suelen usarse nmeros mayores, se utiliza el mtodo llamado algoritmo de Booth. 11101111 111011 __________ 11101111 11101111 00000000 11101111 11101111 11101111 ______________ 11011100010101
Ejemplo:
Dividir 100010010 (274) entre 1101 (13): 100010010 |1101 -0000 010101 10001 -1101 01000 - 0000 10000 - 1101 00111 - 0000 01110 - 1101 00001
Ejemplos 110111 (binario) = 67 (octal). Proceso: 111 = 7 110 = 6 Agrupe de izquierda a derecha: 67 11001111 (binario) = 317 (octal). Proceso: 111 = 7 001 = 1 11 entonces agregue un cero, con lo que se obtiene 011 = 3 Agrupe de izquierda a derecha: 317 1000011 (binario) = 103 (octal). Proceso: 011 = 3 000 = 0 1 entonces agregue 001 = 1 Agrupe de izquierda a derecha: 103 Si el nmero binario tiene parte decimal, se agrupa de tres en tres desde el punto decimal hacia la derecha siguiendo los mismos criterios establecidos anteriormente para nmeros enteros. Por ejemplo: 0.01101 (binario) = 0.32 (octal) Proceso: 011 = 3 01 entonces agrege 010 = 2 Agrupe de izquierda a derecha: 32 Agregu la parte entera: 0.32
Octal a binario.
Cada dgito octal se convierte en su binario equivalente de 3 bits y se juntan en el mismo orden.
Ejemplo
247 (octal) = 010100111 (binario). El 2 en binario es 10, pero en binario de 3 bits es Oc (2) = B(010); el Oc(4) = B(100) y el Oc(7) = (111), luego el nmero en binario ser 010100111.
Hexadecimal a binario.
Note que para pasar de Hexadecimal a binario, se remplaza el nmero Hexadecimal por el equivalente de 4 bits, de forma similar a como se hace de octal a binario.
Tabla de conversin entre decimal, binario, hexadecimal, octal, BCD, Exceso 3 y Gray o Reflejado.
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Octal BCD 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 00010000 00010001 00010010 00010011 00010100 00010101 Exceso 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Gray o Reflejad 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
Factorializacin.
Tabla de conversin entre binario, factor binario, hexadecimal, octal y decimal Binario Factor binario Hexadecimal Octal Decimal. 0000 0010 21 2 2 2 0000 0100 22 4 4 4 0000 1000 23 8 10 8 0001 0000 24 10 20 16 0010 0000 25 20 40 32 0100 0000 26 40 100 64 1000 0000 27 80 200 128
3. Sumar 1 al bit menos significativo (LSB) del nmero obtenido anteriormente: 0 1 1 0 1 1 0 1 1 Resultado 0 1 1 0 1 1 1 0 El resultado de dicha suma representa el nmero -146, para comprobarlo sumamos -146+146 lo deber retornar cero como resultado: -146 146 Resultado 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0
El 1 como acarreo que "va propagndose" en la suma de cada bit queda fuera del octeto por lo cual no tiene valor en este caso.
Complemento a uno
Complemento a uno Decimal 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 7 6 5 4 3 2 1 0 0 1 -2 3 4 5 6 7
Complemento a uno con enteros de 4 bits El complemento a uno de un nmero binario es una operacin matemtica muy importante en el campo de la computacin, ya que nos permite obtener la representacin binaria de nmeros negativos. Se obtiene al cambiar cada uno de los dgitos del nmero binario N por su complementario, esto es, cambiar los unos por ceros y los ceros por unos. Por ejemplo: Nmero binario = Complemento a uno = Podemos referirnos al complemento a uno como la funcin complemento a uno definir como el complemento a dos menos una unidad, es decir definicin anterior, que el complemento a dos se puede definir como Por ejemplo, vamos a calcular el complemento a 1 del nmero binario ; tiene 6 dgitos: ; , que tambin se puede . Es trivial a partir de la . que, expresado en
y, su complemento a
Existe una desventaja a la hora de utilizar el complemento a uno para representar nmeros negativos que hace ms adecuado el complemento a dos, y es que existen dos posibles representaciones para el nmero cero.
2.3 Cdigo binario en complemento a uno En este sistema los nmeros positivos se representan como en el sistema binario en magnitud y signo, es decir, siguiendo el sistema tradicional, aunque reservando el bit ms significativo, que debe ser cero. Para los nmeros negativos se utiliza el complemento a uno, que consiste en tomar la representacin del correspondiente nmero positivo y cambiar los bits 0 por 1 y viceversa (el bit ms significativo del nmero positivo, que es cero, pasa ahora a ser 1). En captulo dedicado a los Operadores de manejo de bits ( 4.9.3), veremos que C++ dispone de un operador especfico para realizar estos complementos a uno. Como puede verse, en este sistema, el bit ms significativo sigue representando el signo, y es siempre 1 para los nmeros negativos. Por ejemplo, la representacin de 33 y -33 sera: +33 -33 0010 0001 1101 1110
2.4 Cdigo binario en complemento a dos: En este sistema, los nmeros positivos se representan como en el anterior, reservando tambin el bit ms significativo (que debe ser cero) para el signo. Para los nmeros negativos, se utiliza un sistema distinto, denominado complemento a dos, en el que se cambian los bits que seran 0 por 1 y viceversa, y al resultado se le suma uno. Este sistema sigue reservando el bit ms significativo para el signo, que sigue siendo 1 en los negativos. Por ejemplo, la representacin de 33 y -33 sera: +33 -33 0010 0001 1101 1110 + 0000 0001 1101 1111
El hardware necesario para implementar operaciones aritmticas con nmeros representados de este modo es mucho ms sencillo que el del complemento a uno, por lo que es el sistema ms ampliamente
utilizado [8]. Precisamente esta forma de representacin interna es la respuesta al problema presentado en la pgina adjunta ( Problema) Nota: el manual Borland C++ informa que los tipos enteros con signo, tanto los que utilizan dos octetos (16 bits) como los que utilizan una palabra de 4 Bytes (32 bits), se representan internamente en forma de cdigo binario en complemento a dos (Fig. 1). Precisamente los procesadores Intel 8088, sus descendientes y compatibles, almacenan internamente los nmeros en esta forma, y para facilitar la rpida identificacin del signo, disponen de un bit (SF) en el registro de estado ( H3.2) que indica si el resultado de una operacin tiene a 1 o a 0 el bit ms significativo.
Complemento a dos
Complemento a dos Decimal 0111 0110 0101 0100 0011 0010 0001 0000 1111 1110 1101 1100 1011 1010 1001 1000 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8
Complemento a dos con enteros de 4 bits El complemento a dos de un nmero N que, expresado en el sistema binario est compuesto por n dgitos, se define como: . El total de nmeros positivos ser y el de negativos , siendo n el nmero mximo de bits.
Cabe sealar que en este ejemplo se ha limitado el nmero de bits a 6, por lo que no sera posible distinguir entre el -45 y el 19 (el 19 en binario es 10011). En realidad, un nmero en complemento a dos se expresa con una cantidad arbitraria de unos a la izquierda, de la misma manera que un nmero binario positivo se expresa con una cantidad arbitraria de ceros. As, el -45, expresado en complemento a dos usando 8 bits sera 11010011, mientras que el 19 sera 00010011; y expresados en 16 bits seran 1111111111010011 y 0000000000010011 respectivamente. Se presenta la tabla de verdad del complemento a 2 para cuatro dgitos.
Conversin rpida
Una forma de hallar el opuesto de un nmero binario positivo en complemento a dos es comenzar por la derecha (el dgito menos significativo), copiando el nmero original (de derecha a izquierda) hasta encontrar el primer 1, despus de haber copiado el 1, se niegan (complementan) los dgitos restantes (es decir, copia un 0 si aparece un 1, o un 1 si aparece un 0). Este mtodo es mucho ms rpido para las personas, pues no utiliza el complemento a uno en su conversin.1 Por ejemplo, el complemento a dos de 0011 11010 es 1100 00110Otra forma es negar todos los dgitos (se halla el complemento a 1) y despus sumar un 1 al resultado, viene a ser lo mismo que lo anteriormente explicado. 100001 ---> 011110 --> 011111 Es equivalente negar todos los dgitos haciendo XOR contra un nmero con la misma cantidad de dgitos binarios pero lleno de 1s y sumar 1 al resultado. En la prctica podra explicarse como: 100001 XOR 111111 = 011110 Agregando 1 = 011111
Para implementarlo en una rutina escrita en el lenguaje de programacin C, asumiendo que 'x' es la cantidad a la que se le calcular el complemento a 2, 'n' el nmero mximo de bits de las cantidades representadas y 'y' es la variable en donde se almacenar el resultado. El clculo podra escribirse como: y=((x^^(2^n-1)++))&&(2^n-1); Si 'n' no va a cambiar a lo largo del programa, puede sustituirse como una constante y con ello acelerar el clculo y disminuir los recursos de cmputo consumidos. Por ejemplo, si todos los clculos son en 8 bits, la rutina anterior podra simplificarse a: y=((x^^0xFF)++)&&0xFF;
Aplicaciones
Su utilidad principal se encuentra en las operaciones matemticas con nmeros binarios. En particular, la resta de nmeros binarios se facilita enormemente utilizando el complemento a dos: la resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Se utiliza porque la unidad aritmtico-lgica no resta nmeros binarios, suma binarios negativos, por eso esta conversin al negativo.
Hola el precio que aparece en la parte inferior de la imagen donde est la convocatoria para los cursos es de ida y vuelta incluyendo el carro, el hospedaje y el gafete sea la inscripcin?? https://www.facebook.com/photo.php?fbid=238190769665372&set=a.100849773399473.2028.10000423 3512441&type=1&theater