Download 1. - NUMEROS BINARIOS, OCTALES Y HEXADECIMALES. El
Document related concepts
Transcript
.1. - NUMEROS BINARIOS, OCTALES Y HEXADECIMALES. El sistema de numeración utilizado habitualmente es la base 10; es decir, consta de 10 dígitos (0-9) que podemos colocar en grupos, ordenados de izquierda a derecha y de mayor a menor. Cada posición tiene un valor o peso de 10n donde n representa el lugar contado por la derecha: 1357 = 1 x 103 + 3 x 102 + 5 x 101 + 7 x 100 Explícitamente, se indica la base de numeración como 1357 10. En un ordenador el sistema de numeración es binario -en base 2, utilizando el 0 y el 1- hecho propiciado por ser precisamente dos los estados estables en los dispositivos digitales que componen una computadora. Análogamente a la base 10, cada posición tiene un valor de 2 n donde n es la posición contando desde la derecha y empezando por 0: 1012 = 1 x 22 + 0 x 21 + 1 x 20 Además, por su importancia y utilidad, es necesario conocer otros sistemas de numeración como pueden ser el octal (base 8) y el hexadecimal (base 16). En este último tenemos, además de los números del 0 al 9, letras -normalmente en mayúsculas- de la A a la F. Llegar a un número en estos sistemas desde base 2 es realmente sencillo si agrupamos las cifras binarias de 3 en 3 (octal) o de 4 en 4 (hexadecimal): Base 2 a base 8: 101 0112 = 538 Base 2 a base 16: 0010 10112 = 2B16 A la inversa, basta convertir cada dígito octal o hexadecimal en binario: Base 8 a base 2: 248 = 010 1002 Base 16 a base 2: 2416 = 0010 01002 De ahora en adelante, se utilizarán una serie de sufijos para determinar el sistema de numeración empleado: Sufijo Base Ejemplos b 2 01101010b o,q 8 175o d 10 789d h 16 6A5h En caso de que no aparezca el sufijo, el número se considera decimal; es decir, en base 10. 1.2. - CAMBIO DE BASE. Pese a que las conversiones entre base 2 y base 8 y 16 son prácticamente directas, existe un sistema general para realizar el cambio de una base a otra. El paso de cualquier base a base 10 lo vimos antes: 6A5h = 6 x 162 + 10 x 161 + 5 x 160 Inversamente, si queremos pasar de base 10 a cualquier otra habrá que realizar sucesivas divisiones por la base y tomar los restos: donde 4 es el último cociente (menor que la base) y los restantes dígitos son los restos en orden inverso. 1.3. - ESTRUCTURA ELEMENTAL DE LA MEMORIA. 1.3.1. - BIT. Toda la memoria del ordenador se compone de dispositivos electrónicos que pueden adoptar únicamente dos estados, que representamos matemáticamente por 0 y 1. Cualquiera de estas unidades de información se denomina BIT, contracción de «binary digit» en inglés. 1.3.2. - BYTE. Cada grupo de 8 bits se conoce como byte u octeto. Es la unidad de almacenamiento en memoria, la cual está constituida por un elevado número de posiciones que almacenan bytes. La cantidad de memoria de que dispone un sistema se mide en Kilobytes (1 Kb = 1024 bytes), en Megabytes (1 Mb = 1024 Kb), Gigabytes (1 Gb = 1024 Mb), Terabytes (1 Tb = 1024 Gb) o Petabytes (1 Pb = 1024 Tb). Los bits en un byte se numeran de derecha a izquierda y de 0 a 7, correspondiendo con los exponentes de las potencias de 2 que reflejan el valor de cada posición. Un byte nos permite, por tanto, representar 256 estados (de 0 a 255) según la combinación de bits que tomemos. 1.3.3. - NIBBLE. Cada grupo de cuatro bits de un byte constituye un nibble, de forma que los dos nibbles de un byte se llaman nibble superior (el compuesto por los bits 4 a 7) e inferior (el compuesto por los bits 0 a 3). El nibble tiene gran utilidad debido a que cada uno almacena un dígito hexadecimal: Binario Hex. Decimal Binario Hex. Decimal 0000 0 0 1000 8 8 0001 1 1 1001 9 9 0010 2 2 1010 A 10 0011 3 3 1011 B 11 0100 4 4 1100 C 12 0101 5 5 1101 D 13 0110 6 6 1110 E 14 0111 7 7 1111 F 15 1.4. - OPERACIONES ARITMÉTICAS SENCILLAS EN BINARIO. Para sumar números, tanto en base 2 como hexadecimal, se sigue el mismo proceso que en base 10: Podemos observar que la suma se desa1010 1010b rrolla de la forma tradicional; es decir: + 0011 1100b sumamos normalmente, salvo en el caso de -------------1 + 1 = 102 , en cuyo caso tenemos un aca1110 0110b rreo de 1 (lo que nos llevamos). 1.5. - COMPLEMENTO A DOS. En general, se define como valor negativo de un número el que necesitamos sumarlo para obtener 00h, por ejemplo: FFh Como en un byte solo tenemos dos nibbles, es + 01h decir, dos dígitos hexadecimales, el resultado es ------ 0 (observar cómo el 1 más significativo subrayado 100h es ignorado). Luego FFh=-1. Normalmente, el bit 7 se considera como de signo y, si está activo (a 1) el número es negativo. Por esta razón, el número 80h, cuyo complemento a dos es él mismo, se considera negativo (-128) y el número 00h, positivo. En general, para hallar el complemento a dos de un número cualquiera basta con calcular primero su complemento a uno, que consiste en cambiar los unos por ceros y los ceros por unos en su notación binaria; a continuación se le suma una unidad para calcular el complemento a dos. Con una calculadora, la operación es más sencilla: el complemento a dos de un número A de n bits es 2n-A. Otro factor a considerar es cuando se pasa de operar con un número de cierto tamaño (ej., 8 bits) a otro mayor (pongamos de 16 bits). Si el número es positivo, la parte que se añade por la izquierda son bits a 0. Sin embargo, si era negativo (bit más significativo activo) la parte que se añade por la izquierda son bits a 1. Este fenómeno, en cuya demostración matemática no entraremos, se puede resumir en que el bit más significativo se copia en todos los añadidos: es lo que se denomina la extensión del signo: los dos siguientes números son realmente el mismo número (el -310): 11012 (4 bits) y 111111012 (8 bits). 1.6. - AGRUPACIONES DE BYTES. Tipo Definición Palabra 2 bytes contiguos Doble palabra 2 palabras contiguas (4 bytes) Cuádruple palabra 4 palabras contiguas (8 bytes) Párrafo 16 bytes Página 256 bytes, 16 Kb, etc. Segmento 64 Kbytes 1.7. - REPRESENTACIÓN DE LOS DATOS EN MEMORIA. 1.7.1. - NUMEROS BINARIOS: máximo número representable: Tipo Sin signo 1 byte 255 2 bytes 65.535 4 bytes 4.294.967.295 8 bytes 18.446.744.073.709.551.615 Tipo Positivo Negativo 1 byte 127 -128 2 bytes 32.767 -32.768 4 bytes 2.147.483.647 -2.147.483.648 8 bytes 9.223.372.036.854.775.807 -9.223.372.036.854.775.808 Los números binarios de más de un byte se almacenan en la memoria en los procesadores de Intel en orden inverso: 01234567h se almacenaría: 67h, 45h, 23h, 01h. 1.7.2. - NUMEROS BINARIOS CODIFICADOS EN DECIMAL (BCD). Consiste en emplear cuatro bits para codificar los dígitos del 0 al 9 (desperdiciando las seis combinaciones que van de la 1010 a la 1111). La ventaja es la simplicidad de conversión a/de base 10, que resulta inmediata. Los números BCD pueden almacenarse desempaquetados, en cuyo caso cada byte contiene un dígito BCD (Binary-Coded Decimal); o empaquetados, almacenando dos dígitos por byte (para construir los números que van del 00 al 99). La notación BCD ocupa cuatro bits -un nibble- por cifra, de forma que en el formato desempaquetado el nibble superior siempre es 0. 1.7.3. - NUMEROS EN PUNTO FLOTANTE. Son grupos de bytes en los que una parte se emplea para guardar las cifras del número (mantisa) y otra para indicar la posición del punto flotante (exponente), de modo equivalente a la notación científica. Esto permite trabajar con números de muy elevado tamaño -según el exponente- y con una mayor o menor precisión en función de los bits empleados para codificar la mantisa. 1.7.4. - CÓDIGO ASCII. El código A.S.C.I.I. (American Standard Code for Information Interchange) es un convenio adoptado para asignar a cada carácter un valor numérico; su origen está en los comienzos de la Informática tomando como muestra algunos códigos de la transmisión de información de radioteletipo. Se trata de un código de 7 bits con capacidad para 128 símbolos que incluyen todos los caracteres alfanuméricos del inglés, con símbolos de puntuación y algunos caracteres de control de la transmisión. Con posterioridad, con la aparición de los microordenadores y la gran expansión entre ellos de los IBM-PC y compatibles, la ampliación del código ASCII realizada por esta marca a 8 bits, con capacidad para 128 símbolos adicionales, experimenta un considerable auge, siendo en la actualidad muy utilizada y recibiendo la denominación oficial de página de códigos 437 (EEUU). Se puede consultar al final de este libro. Es habitualmente la única página soportada por las BIOS de los PC. Para ciertas nacionalidades se han diseñado otras páginas específicas que requieren de un software externo. En las lenguas del estado español y en las de la mayoría de los demás países de la UE, esta tabla cubre todas las necesidades del idioma. 1.8. - OPERACIONES LÓGICAS EN BINARIO. Se realizan a nivel de bit y pueden ser de uno o dos operandos: x NOT (x) 0 1 1 0 x y x AND y x OR y x XOR y 00 0 0 0 01 0 1 1 10 0 1 1 11 1 1 0 Operaciones Binarias En lo que sigue se adopta como convención la lógica positiva, lo que implica: verdadero = 1 = activo, ------, falso = 0 = inactivo Hay cinco operaciones binarias básicas: AND, OR, NOT, XOR y ADD. La resta, multiplicación y división se derivan de estas cinco anteriores. Cualquiera sea la longitud de la palabra o palabras objeto de la operación, siempre se hace de a un bit por vez de derecha a izquierda (tal como si fuera una suma o resta con números decimales). Esto permite una definición de cada operación que es independiente de la longitud del o de los operando(s). La operación NOT es la única que se realiza sobre un sólo operando (es unaria), y las otras cuatro sobre dos operandos. La operación AND (Y) tiene resultado 1 si sus dos operandos son ambos 1 La operación OR (O) tiene resultado 1 si cualquiera de sus operandos es 1 La operación XOR tiene resultado 1 si los operandos son distintos (uno en 0 y el otro en 1) La operación NOT (NO) tiene resultado 1 si el operando es 0 y viceversa La operación ADD (SUMA) se define igual que con los números decimales AND OR XOR NOT SUMA 0*0=0 0+0=0 0X0=0 NOT 1 = 0 0+0=0 0*1=0 0+1=1 0X1=1 NOT 0 = 1 0+1=1 1*0=0 1+0=1 1X0=1 --1+0=1 1*1=1 1+1=1 1X1=0 --1 + 1 = 10 División Reglas de la división binaria: 0/0 no permitida, 1/0 no permitida,0/1=0, 1/1=1 Es lo que hacemos en la suma decimal 5+5=10 (nos llevamos “1″ para la operación del dígito siguiente). Este llevarse “1″ es vastamente usado entre los procesadores digitales y tiene un nombre especial: carry (lo verá abreviado como CY, C o CF-por carry flag), lo que en castellano se traduce como “acarreo” (que suena muy mal, asi que le seguiremos llamando carry). Estas operaciones también se llaman “booleanas” ya que se basan en el álgebra de Boole (invito al lector a rememorar cuando en la escuela secundaria se preguntaba, igual que yo, si el álgebra de Boole le serviría alguna vez para algo). En un ordenador el sistema de numeración es binario -en base 2, utilizando el 0 y el 1- hecho propiciado por ser precisamente dos los estados estables en los dispositivos digitales que componen una computadora. Para sumar números, tanto en base 2 como hexadecimal, se sigue el mismo proceso que en base 10: Podemos observar que la suma se desa- 1010 1010b rrolla de la forma tradicional; es decir: + 0011 1100b sumamos normalmente, salvo en el caso de 1 + 1 = 102 , en cuyo caso tenemos un aca1110 0110b rreo de 1 (lo que nos llevamos). Complemento a dos. En general, se define como valor negativo de un número el que necesitamos sumarlo para obtener 00h, por ejemplo: FFh Como en un byte solo tenemos dos nibbles, es + 01h decir, dos dígitos hexadecimales, el resultado es 0 (observar cómo el 1 más significativo subrayado 100h es ignorado). Luego FFh=−1. Normalmente, el bit 7 se considera como de signo y, si está activo (a 1) el número es negativo. Por esta razón, el número 80h, cuyo complemento a dos es él mismo, se considera negativo (−128) y el número 00h, positivo. En general, para hallar el complemento a dos de un número cualquiera basta con calcular primero su complemento a uno, que consiste en cambiar los unos por ceros y los ceros por unos en su notación binaria; a continuación se le suma una unidad para calcular el complemento a dos. Con una calculadora, la operación es más sencilla: el complemento a dos de un número A de n bits es 2n-A. Otro factor a considerar es cuando se pasa de operar con un número de cierto tamaño (ej., 8 bits) a otro mayor (pongamos de 16 bits). Si el número es positivo, la parte que se añade por la izquierda son bits a 0. Sin embargo, si era negativo (bit más significativo activo) la parte que se añade por la izquierda son bits a 1. Este fenómeno, en cuya demostración matemática no entraremos, se puede resumir en que el bit más significativo se copia en todos los añadidos: es lo que se denomina la extensión del signo: los dos siguientes números son realmente el mismo número (el −310): 11012 (4 bits) y 111111012 (8 bits). Sistema de numeración octal El sistema de numeración octal es muy importante en el trabajo que se realiza en una computadora digital. Este tiene una base de ocho, lo cual significa que tiene ocho posibles dígitos: 0, 1, 2, 3, 4, 5, 6 y 7. Así, cada dígito de un número octal puede tener cualquier valor del 0 al 7. Conversi6n de octal a decimal.- Por tanto, un número octal puede convenirse fácilmente a su equivalente decimal multiplicando cada dígito octal por su valor posicional. Por ejemplo: 2748 = 2 x 82 + 7 x 81 + 4 x 80 2848 = 2 x 64 + 7 x 8 + 4 x 1 2848 = 18810 Conversión de decimal a octal.- Un entero decimal se puede convertir a octal con el mismo método dc división repetida que se usó en la conversión de decimal a binario, pero con un factor de división dc 8 en lugar de 2. Por ejemplo: con residuo 4 con residuo 4 con residuo 2 Al final resulta que: 16410 = 2448 Conversión de octal a binario.- La ventaja principal del sistema de numeración octal es la facilidad con que se puede realizar la conversión entre números binarios y octales. La conversión de octal a binario se lleva a cabo conviniendo cada dígito octal en su equivalente binario dc 3 bits. Por medio de estas conversiones, cualquier número octal se conviene a binario, convirtiéndolo dc manera individual. Por ejemplo, podemos convertir 516, a binario de la siguiente manera: 516 001 110 entonces: 5168 = 1010011102 Conversi6n de binario a octal.- La conversión de enteros binarios a octales es simplemente la operación inversa del proceso anterior. Los bits del número binario se agrupan en conjuntos de tres comenzando por el LSB. Luego, cada grupo se convierte a su equivalente octal. Por ejemplo: 111 001 101 110 7 1 5 6 entonces: 1110011011102 = 71568 Sistema De Numeración Hexadecimal Conversión de hexadecimal a decimal.- Un número hexadecimal se puede convenir a su equivalente decimal utilizando el hecho de que cada posición de los dígitos hexadecimales tiene un valor que es una potencia de 16. El LSD tiene un valor de l60 = 1; el siguiente dígito en secuencia tiene un valor de 161 = 16; el siguiente tiene un valor de 162 = 256 y así sucesivamente. Por ejemplo: 81216 = 8 x 162 + 1 x 161 + 2 x 160 81216 = 2048 + 16 + 2 81216 = 206610 Conversión de decimal a hexadecimal.- Recuerde que efectuamos la conversión de decimal a binario por medio de la división repetida entre 2 y de decimal a octal por medio de la división repetida entre 8. De igual manera, la conversión de decimal a hexadecimal se puede efectuar por medio de la división repetida entre 16. Por ejemplo: con residuo 7 con residuo 010 con residuo 1 entonces: 42310 = 1A716 Conversión de hexadecimal a binario.- Al igual que el sistema de numeración octal, el sistema hexadecimal se usa principalmente como método ‘taquigráfico” en la representación de números binarios. Es una tarea relativamente simple la de convertir un número hexadecimal en binario. Cada dígito hexadecimal se convierte en su equivalente binario de 4 bits. Por ejemplo: 6D23 1101 0010 0011 entonces: 6D2316 = 1101101001000112 Conversión de binario a hexadecimal.- Esta conversión es exactamente la operación inversa del proceso anterior. El número binario se agrupa en conjuntos de cuatro bits y cada grupo se convierte a su dígito hexadecimal equivalente. Cuando es necesario se añaden ceros para completar un grupo de cuatro bits. 11101001102 = 0011 1010 0110 3A6 11101001102 = 3A616 Investigado Por Hector Jesus Perez Gomez Estudiante del Instituto Tecnologico De Villahermosa Para La comunidad En general. Aula 9 LOS SISTEMAS DE NUMERACIÓN SISTEMA BINARIO El sistema binario desempeña un importante papel en la tecnología de los ordenadores. Los primeros 20 números en el sistema en base 2 son 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, 10001, 10010, 10011 y 10100. Cualquier número se puede representar en el sistema binario, como suma de varias potencias de dos. Por ejemplo, el número 10101101 representa, empezando por la derecha, (1 × 20) + (0 × 21) + (1 × 22) + (1 × 23) + (0 × 24) + (1 × 25) + (0 × 26) + (1 × 27) = 173. Las operaciones aritméticas con números en base 2 son muy sencillas. Las reglas básicas son: 1 + 1 = 10 y 1 × 1 = 1. El cero cumple las mismas propiedades que en el sistema decimal: 1 × 0 = 0 y 1 + 0 = 1. La adición, sustracción y multiplicación se realizan de manera similar a las del sistema decimal: 100101 1011010 +110101 - 110101 1011010 100101 Puesto que sólo se necesitan dos dígitos (o bits), el sistema binario se utiliza en los ordenadores o computadoras. Un número binario cualquiera se puede representar, por ejemplo, con las distintas posiciones de una serie de interruptores. La posición “encendido” corresponde al 1, y “apagado” al 0. Además de interruptores, también se pueden utilizar puntos imantados en una cinta magnética o disco: un punto imantado representa al dígito 1, y la ausencia de un punto imantado es el dígito 0. Los biestables ( dispositivos electrónicos con sólo dos posibles valores de voltaje a la salida y que pueden saltar de un estado al otro mediante una señal externa ) también se pueden utilizar para representar números binarios. Los circuitos lógicos realizan operaciones con números en base 2. La conversión de números decimales a binarios para hacer cálculos, y de números binarios a decimales para su presentación, se realizan electrónicamente SISTEMA DECIMAL O BASE 10 Cuando en una enumeración se usan 10 símbolos diversos, a esta se le denomina numeración decimal o basa diez. El valor de cada cifra es el producto de la misma por una potencia de diez (la base), cuyo exponente es igual a la posición ocupada por la cifra; se supone que las unidades ocupan la posición 0, la decenas la posición 1 y así sucesivamente. Por ejemplo, 327 se puede descomponer en: 3 . 102 + 2 . 101 + 7 . 100 = 300 + 20 + 7 = 327 Siguiendo con el mismo razonamiento podemos definir una numeración binaria o en base 2, donde los símbolos 0 y 1 vistos anteriormente asumen el valor numérico 0 y 1. Así, el número 10110 escrito en base 2 o binaria equivale al siguiente número en base 10 o decimal: 1 . 24 + 0 .23 + 1 . 22 + 1 . 21 + 0 . 20 = 16 + 0 + 2 + 2 + 0 = (22)10 NUMERACIÓN OCTAL Y HEXADECIMAL El sistema de numeración hexadecimal utiliza 16 símbolos o signos y el sistema de numeración octal utiliza solo 8 símbolos. Para comprenderse funcionamiento, retomaremos el numero anteriormente analizado en base 10, (327) y lo estudiaremos en base octal y hexadecimal. BASE 8 U OCTAL Si tenemos el número (327)8 su correspondiente valor en base 10 será: (327) = 3 . 82 + 2 . 81 + 7 . 80 = 192 + 16 + 7 = (215)10 Los signos que se utilizan en base 8 son: 01234567 Una cifra octal equivale a 3 cifras binarias, por lo que el numero escrito en binario se puede convertir en octal dividiéndolo en grupos de 3 bits, y traduciendo cada uno de ellos en la cifra octal correspondiente. Por ejemplo, el número binario 10110, equivale a 26 en octal: 10 110 numero binario descompuesto en grupos de 3 bits. 2 6 equivalente en octal de cada grupo. BASE 16 O HEXADECIMAL Si analizamos el número (327)10 , y obtenemos su correspondiente valor en base 10, será: (327)16 = 3 . 162 + 2 . 161 + 7 . 160 = = 768 + 32 + 7 = (807)10 Por lo que (327)16 = (807)10 Los signo utilizados en base 16 son los que se indican a continuación: 0123456789ABCDEF El valor de las letras es el siguiente: A= 10; B= 11; C= 12 ; D= 13; E= 14; F= 15 Una cifra hexadecimal contiene la misma información que 4 bits, por lo que el numero escrito en binario se puede convertir en hexadecimal dividiendolo en grupos de cuatro bits, y traduciendo cada uno de ellos en la cifra hexadecimal correspondiente. Por ejemplo, el numero 10110equivale a 16 en hexadecimal; la descomposición seria: 1 0110 numero binario descompuesto en grupos de cuatro bits 1 6 equivalente hexadecimal en cada grupo. El Sistema de Numeración Maya Los mayas idearon un sistema de base 20 con el 5 cómo base auxiliar. La unidad se representaba por un punto. Dos, tres, y cuatro puntos servían para 2, 3 y 4. El 5 era una raya horizontal, a la que seañadían los puntos necesarios para representar 6, 7, 8 y 9. Para el 10 se usaban dos rayas, y de la misma forma se continúa hasta el 20, con cuatro rayas. Hasta aquí parece ser un sistema de base 5 aditivo, pero en realidad, considerados cada uno un solo signo, estos símbolos constituyen las cífras de un sistema de base 20, en el que hay que multiplicar el valor de cada cifra por 1, 20, 20×20, 20×20×20 … según el lugar que ocupe, y sumar el resultado. Es por tanto un sistema posicional que se escribe a arriba abajo, empezando por el orden de magnitud mayor. Al tener cada cifra un valor relativo según el lugar que ocupa, la presencia de un signo para el cero, con el que indicar la ausencia de unidades de algún orden, se hace imprescindible y los mayas lo usaron, aunque no parece haberles interesado el concepto de cantidad nula. Cómo los babilonios lo usaron simplemente para indicar la ausencia de otro número. Pero los científicos mayas eran a la vez sacerdotes ocupados en la observación astronómica y para expresar los número correspondientes a las fechas usaron unas unidades de tercer orden irregulares para la base 20. Así la cifra que ocupaba el tercer lugar desde abajo se multiplicaba por 20×18=360 para completar una cifra muy próxima a la duración de un año. OPERACIONES ARITMÉTICAS DE LOS DISTINTOS SISTEMAS. Al igual que en el sistema decimal, también en otros sistemas de numeración, se pueden realizar operaciones aritméticas, tales como: suma, resta, multiplicación y división tomando como referencia la base del sistema dado. SUMA BINARIA, OCTAL Y HEXADECIMAL. En general, para realizar la suma se procede de la misma forma como se hace en el sistema decimal. Por ejemplo, si es un número dado en una base b y es otro dado en la misma base entonces la suma se debe realizar de la siguiente forma: Los dígitos mj=(aj+hj+cj-1) pertenecientes al resultado se forman sumando los dígitos de cada columna de los cosumandos, más el acarreo cj-1 que viene de la columna anterior. Cada unidad de acarreo tiene el mismo valor de la base del sistema, por ejemplo, en la suma binaria es dos, en octal ocho y en hexadecimal dieciséis. Por ejemplo, llevar 2 en hexadecimal significa que el acarreo es el doble de la base y vale exactamente 32; de este mismo modo, en binario equivale a 4 veces y 16 en octal. Los acarreos aparecen cuando las semisumas de las columnas superan la base del sistema numérico. SUMA BINARIA: Las operaciones de suma binaria se realizan de la siguiente forma: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 Llevo 1 + 1 = 0 1 Ejemplo: Dado los números binarios: W=1111100012; T=11011101012; Obtener W+T 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 0 SUMA OCTAL: Se debe restar o dividir la semisuma de cada columna, cuando la misma exceda la base del sistema, y colocar en la columna inmediata del lado izquierdo, el valor del acarreo tantas veces se haya superado la base del sistema. De esta misma forma cada unidad que se acarree equivale a ocho unidades de la columna anterior. Ejemplo: Dado los números binarios: A. 40740647 y B. 25675300, Obtener A+B SUMA HEXADECIMAL: Se debe restar o dividir la semisuma de cada columna, cuando la misma exceda la base del sistema, y colocar en la columna inmediata del lado izquierdo, el valor del acarreo tantas veces se haya superado la base del sistema. Cada unidad que se acarree equivale a dieciséis unidades de la columna anterior. Ejemplo: Dado los números binarios: MULTIPLICACIÓN BINARIA, OCTAL Y HEXADECIMAL. La operación aritmética de multiplicar se realiza del mismo modo que en el sistema numérico decimal. MULTIPLICACIÓN BINARIA: Ej: Multiplicar A. 1110112 y B. 1112 1 1 1 0 1 1 x 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 MULTIPLICACIÓN OCTAL: Ej: Multiplicar A. 672348 y B. 168 6 7 2 3 4 x 1 6 5 1 3 6 5 0 + 6 7 2 3 4 1 4 0 6 2 1 0 MULTIPLICACIÓN HEXADECIMAL: Ej: Multiplicar A. 67D3416 y B. 1216 6 7 D 3 4 x 1 2 C F A 6 8 + 6 7 D 3 4 7 4 C D A 8 DIVISIÓN BINARIA, OCTAL Y HEXADECIMAL. La operación aritmética de dividir se realiza del mismo modo que en el sistema numérico decimal. DIVISIÓN BINARIA: DIVISIÓN OCTAL Y HEXADECIMAL: La división se efectúa del mismo modo que en el sistema decimal y se realiza directamente en la misma base del sistema octal o hexadecimal. Sin embargo, también se puede obtener previamente la conversión en binario y proceder, como en el caso anterior, a realizarla en binario; y después el resultado transformarlo de nuevo al sistema numérico original. COMPLEMENTO DE UN NÚMERO CON RESPECTO A LA BASE DEL SISTEMA. Las representaciones de los números en los distintos sistemas son hechas por convenciones y acuerdos. La finalidad de esto es buscar formas sencillas de manejar universalmente operaciones y representaciones numéricas, representar números fraccionarios, números negativos, etc. El complemento de un número sirve para normalizar y reglamentar las operaciones aritméticas con signo, de forma que puedan ser procesadas por los circuitos internos de una calculadora o computadora. El complemento a la base de un número se define por la siguiente fórmula: (Ec.1.3) donde dígitos y es el número complementado a la base es el número dado. Ejemplo: Hallar el complemento a diez del número 89732410 del sistema, n la cantidad de Solución: El número esta dado en el sistema decimal y la cantidad de dígitos es seis Ejemplo: Hallar el complemento a dieciséis del número A9EFC21 16 Solución: El número está dado en el sistema hexadecimal y la cantidad de dígitos es siete. Ejemplo: Hallar el complemento a ocho del número 604728 Solución: El número está dado en el sistema octal y la cantidad de dígitos es cinco. Ejemplo: Hallar el complemento a dos del número 100111011101 2 Solución: El número está dado en el sistema binario y la cantidad de dígitos es doce. COMPLEMENTO DISMINUIDO EN UNO A LA BASE DEL SISTEMA. Existe otra forma de hallar el complemento a la base del sistema, ésta es, obteniendo el complemento disminuido a uno y luego sumando uno. Para obtener esta fórmula se procede con un artificio en la Ec.1.3 de la siguiente forma: (Ec.1.3.1). El valor (Ec.1.4) Se conoce como el complemento de la base disminuido a uno. También se le denomina complemento a uno del sistema numérico correspondiente y por lo tanto, para hallar el complemento a la base solamente se le debe sumar uno a la (Ec.1.4). COMPLEMENTO DISMINUIDO A UNO DEL SISTEMA BINARIO, OCTAL Y HEXADECIMAL. El complemento disminuido a uno se obtiene aplicando la Ec.1.4 en cualquiera de los sistemas numéricos. La expresión (bn-1) se debe usar como minuendo en el tope de la potencia bn menos uno, lo que significa tener una cifra compuesta por los dígitos más significativos y de mayor valor del sistema numérico. Por ejemplo, para hallar el minuendo de 564378, en el sistema octal, se procede de la siguiente forma: n=5; entonces 85 -1=1000008 -1=777778. Ahora, para hallar el complemento disminuido a uno se resta el número dado: . Ejemplo: Hallar el complemento disminuido a uno de los siguientes números: a) 24BCA0F716; b) 100111011012; c) 12657308 Sol. (a): Sol. (b): Sol. (c): En cualquier sistema de numeración el complemento disminuido a uno se puede hallar con la fórmula resultante de la Ec.1, Ec.2 y Ec.3 de la siguiente forma: Donde cada (b-1) corresponde al dígito de mayor peso en el sistema de numeración de base b. Los aj son los n dígitos del número que se va complementar, con j=0,1,....,n-2,n-1. El complemento disminuido a uno se halla, en forma directa, de la siguiente manera: (Ec.1.4.1). Ejemplo: Hallar el complemento disminuido a uno de los siguientes números: a) FCBC4016; b) 1010110112 Solución (a): Solución (b): COMPLEMENTO A UNO. Es un caso particular del complemento disminuido a uno de la base binaria, tiene muchas aplicaciones en los circuitos digitales y sistemas de computación. Sirven para representar tablas numéricas de cantidades positivas y negativas, invertir los estados de los bits que conforman el dato binario y es utilizado como paso previo para hallar el complemento a dos. De la Ec.1.4 se puede determinar que el complemento a uno se obtiene invirtiendo el estado o nivel de los bits que conforman la cifra. Ejemplo: Hallar el complemento a uno de los siguientes números binarios: a) 1100010101011110102; b) 1010110101012 Solución (a): Solución (b): COMPLEMENTO A DOS. Es un caso particular del complemento a la base del sistema binario, tiene muchas aplicaciones en los circuitos digitales y sistemas de computación. Sirven para representar tablas numéricas de cantidades positivas y negativas, invertir los estados de los bits que conforman el dato binario y realizar operaciones aritméticas con signo en el sistema binario. Con la Ec.1.3 se puede determinar el complemento a dos de un número binario; no obstante, con la misma ecuación se puede hallar un método directo para obtener también el complemento a dos. Este método consiste en ir seleccionando y colocando de derecha a izquierda los dígitos binarios hasta conseguir el primer bit en uno, de allí en adelante se cambian de estado todos los bits restantes. El otro método para hallar el complemento a dos consiste en obtener el complemento a uno de la cifra y luego sumarle uno; esto último está reflejado en la (Ec.1.3.1). Ejemplo: Hallar el complemento a dos de los siguientes números binarios: a) 1011001010101112; b) 100011010001002; c) 101110011100002 Aplicando el método con la (Ec.2.1); Solución (a): Solución (b): Solución (c): REPRESENTACIÓN NUMÉRICA EN COMPLEMENTO A DOS. En el sistema binario, la forma más utilizada para representar los números enteros con signo es la de complemento a dos. Los circuitos microprocesadores poseen internamente unidades de procesamiento aritmético que trabajan bajo éste formato, el cual puede estar constituido por n bits múltiplos de la potencia de base dos. Por ejemplo, para representar los números positivos y negativos se definen datos con tamaño estándar: ocho bits, 16 bits, 32 bits, etc. En este formato, el bit más significativo (MSB) del dato se utiliza para indicar el signo y los bits restantes representan la magnitud del número. En la figura 1.2 se puede apreciar la representación del formato utilizado para 16 bits, donde el más significativo (B15) indica que el signo es negativo si vale uno o positivo si vale cero. Las cantidades positivas se encuentran en binario normal mientras que los números negativos están en complemento a dos, esto significa que estos últimos, se deben complementar para poder hallar su verdadero valor. El complemento de un número, en éste formato, es igual que cambiar el signo del mismo. Por otra parte, el complemento del complemento da como resultado el mismo número. Ejemplo: Determinar el valor de los siguientes números dados en representación con signo de 16 bits (Formato de 16 bits): a) 11001010101110002; b) 7FA816; c) 11111100000111002; d) 1761028; e) FA816; Solución (a): El bit 15 del dato vale uno; esto significa que el número es negativo y está dado en complemento a dos. Primero se debe complementar el dato para hallar su verdadero valor en binario y después se transforma a decimal. Solución (b): Se debe transformar hexadecimal a binario y completar con ceros a la izquierda en caso de que el dato no tenga los 16 bits completos. Luego se hace la transformación a decimal. Solución (c): El bit 15 del dato vale uno; esto significa que el número es negativo y está dado en complemento a dos. Primero se debe complementar el dato para hallar su verdadero valor en binario y después se transforma a decimal. Solución (d): Se debe transformar octal a binario y completar con ceros a la izquierda en caso de que el dato no tenga los 16 bits completos. Luego se hace la transformación a decimal. Solución (e): Se debe transformar hexadecimal a binario y completar con ceros a la izquierda en caso de que el dato no tenga los 16 bits completos. Luego se hace la transformación a decimal. OPERACIONES ARITMÉTICAS EN COMPLEMENTO A DOS. La suma y resta son las operaciones básicas realizadas por los microprocesadores, cualquiera otra operación, es consecuencia recursiva de éstas. A continuación se describen estas dos operaciones aritméticas, realizadas con números binarios en complemento a dos utilizando formato de signo y magnitud de 16 bits. SUMA EN COMPLEMENTO A DOS. Son cuatro casos que se presentan al sumar dos datos en formato con signo de complemento a dos: I) SUMA DE DOS NÚMEROS POSITIVOS. El resultado debe ser positivo, y el bit más significativo de la suma, siempre dará cero. Ejemplo: A = 1000111110001002; B = 100101101110112. Antes de realizar la suma binaria se debe tener la precaución de sumar en decimal los números. De esta manera se puede chequear el resultado de la suma para tener la certeza de que no exceda el valor +32767 10 y por lo tanto no sobrepasar el formato de 16 bits (Esto se conoce como OVERFLOW). También el 16vo bit en uno señala el sobreflujo de la operación. II) SUMA DE UNO NEGATIVO Y OTRO POSITIVO. El resultado debe poseer el signo del que tenga mayor valor absoluto. En este caso el resultado es positivo y el 16vo bit vale cero. Ejemplo: A = 11010110010101102; B = 1101101101110112 III) SUMA DE UNO POSITIVO Y OTRO NEGATIVO. El resultado debe poseer el signo del que tenga mayor valor absoluto. En este caso el resultado es negativo y el 16vo bit vale cero; del mismo modo no se debe tomar en cuenta el acarreo del 17vo bit. Ejemplo: A = 110110110101012; B = 10010110111010012 A = 11110011111100002; B = 1001110111001012 Con dos números de distintos signos se dan los casos de acarreo en el 17vo bit. Si éste acarreo es cero significa que el resultado es negativo y se debe complementar para hallar su verdadero valor de la otra forma, si el acarreo es uno, entonces el signo del resultado es mayor o igual a cero y se encuentra en verdadero valor. IV) SUMA DE DOS NÚMEROS NEGATIVOS. El resultado debe ser negativo, por lo tanto el bit más significativo de la suma siempre dará uno. Antes de realizar la suma binaria se debe tener la precaución de sumar en decimal los números. De esta manera se puede chequear el resultado de la suma para tener la certeza de que no exceda el valor -3276710 y por lo tanto no sobrepasar el formato de 16 bits (Esto se conoce como OVERFLOW). También el 16vo y/o 17vo bits en cero señalan el sobreflujo de la operación.