Dígitos binarios

Embed Size (px)

Citation preview

Colores en hexadecimalRojo, verde y azulLosnmeros hexadecimalesse usan en las pginas web para indicar colores. Los colores se definen mezclando cantidades de rojo, verde y azul, cada valor est entre:0 y 255 (en decimal), o

00yFF(en hexadecimal)

Esto se basa en la idea de que todos los colores se pueden conseguir mezclando rojo, verde y azul (en ingls, "Red,Green,Blue"), as que se llama "sistema de colorRGB". Tambin se le llama sistema "aditivo" de color, porque se empieza con el negro y se van aadiendo los tres colores.

Mezclador de colorMezcla colores a tu gusto para ver cmo funciona (tambin puedes escribir los valores en los cuadros para hexadecimal o decimal):

HexadecimalesLos nmeros hexadecimales son "naturales" para los ordenadores, porque manejannmeros binarios, y cuatro cifras binarias hacen una cifra hexadecimal (leedgitos binarios):Decimal:0123456789101112131415

Binario:01101110010111011110001001101010111100110111101111

Hexadecimal:0123456789ABCDEF

Dos dgitos hexadecimales juntos (en informtica a eso se le llama un "byte") representan uno de 1616=256 niveles diferentes de color.16 millones de coloresComo cada uno de los tres colores puede tomar valores de 0 a 255 (256 valores posibles), hay 256256256 = 2563= 16,777,216 combinaciones posibles de colores (y por eso vers que los ordenadores dicen que pueden mostrar "16 millones de colores")Formato webEl formato o ("notacin") que se usa en pginas web es#RRGGBB, donde RR es el valor de la componente roja (usando dos dgitos hexadecimales), GG la componente verde y BB la azul.Ejemplo: un tono de azul sera: 64/255 rojo, 48/255 verde 255/255 azul (el mximo)As que en decimal es (64,48,255), que equivale al hexadecimal (40,30,FF) y se escribe#4030FF.Algunos colores comunesColorDecimal(Rojo, verde, azul)Hexadecimal(#RRGGBB)

Negro(0, 0, 0)#000000

Blanco(255, 255, 255)#FFFFFF

Rojo(255, 0, 0)#FF0000

Verde(0, 255, 0)#00FF00

Azul(0, 0, 255)#0000FF

Amarillo(255, 255, 0)#FFFF00

Cian(0, 255, 255)#00FFFF

Magenta(255, 0, 255)#FF00FF

SISTEMAS DE NUMERACIN

Nmeros hexadecimalesLos nmeroshexadecimalesson interesantes. Hay 16 dgitos diferentes! Son como los decimales hasta el 9, pero despus hay letras ("A',"B","C","D","E","F") para los valores de 10 a 15.As que con una sola cifra hexadecimal se pueden dar 16 valores diferentes en lugar de los 10 de siempre:Decimal:0123456789101112131415

Hexadecimal:0123456789ABCDEF

Sistema decimalDesde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros das, tal es el caso de los "nmeros romanos", pero sin duda el ms extendido en la actualidad es el sistema decimal de nmeros arbigos, llamado as por ser los rabes sus creadores.En el sistema decimal, los nmeros se forman por combinacin de 10 signos distintos; 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. Cada uno de estos signos tiene un valor, y el valor del nmero que forman se halla multiplicando el valor de cada uno de ellos por 10 elevado a la potencia correspondiente a su situacin en el nmero, siendo 0 el de ms a la derecha, 1 el siguiente y as sucesivamente. De esta forma, el nmero 5348 sera igual a:5348 = 8*100+ 4*101+ 3*102+ 5*103= 8*1 + 4*10 + 3*100 + 5*1000

La misma denominacin del nmero nos lo recuerda, decimos: cinco mil, tres cientos, cuarenta y ocho. El sistema decimal es de uso tan frecuente que no vale la pena insistir en l, pero es importante hacer notar que la base de los exponentes es siempre 10 y por tanto, este sistema se denomina tambin "de base 10". Es posible crear sistemas que utilicen una base distinta, y de hecho, estos sistemas son muy usados en informtica.Sistema binarioUn ordenador es una mquina esencialmente binaria, su componente bsico es el transistor, que slo admite dos estados posibles, o bien pasa corriente, o bien no pasa.Los "puristas" podran objetar que un transistor puede tener mltiples estados dependiendo de la cantidad de corriente que pase; es cierto, pero la medicin de esta cantidad de corriente implica una imprecisin que podra crear ambigedades, y un ordenador no admite ambigedad. De forma que por debajo de un determinado valor, se considera que no pasa corriente, y por encima de otro, se considera que s pasa.Arbitrariamente, asociamos estos dos estados con dos dgitos, cuando no pasa corriente decimos que tenemos un "0" y cuando pasa, decimos que tenemos un "1". De esta forma, podremos representar el estado de un interruptor: "1" cuando est encendido y "0" cuando est apagado.Si tenemos una serie de interruptores puestos en fila, podramos representar el estado de todos ellos mediante un nmero binario. En la FIGURA 1 vemos una serie de interruptores cuyo estado podra ser definido mediante el nmero binario: "10011".Como se ve, el sistema binario es perfectamente adecuado para su uso en circuitos electrnicos. A cada "1" o "0" de un nmero binario le llamaremos "dgito binario", que puede abreviarse como "bit" (contraccin de "binary digit").El valor de un nmero binario se halla de la misma forma que en el sistema decimal, excepto que esta vez, la base es "2". As el nmero "10011" ser:10011 = 1*20+ 1*21+ 0*22+ 0*23+ 1*24

Es decir:10011 = 1*1 + 1*2 + 0*4 + 0*8 + 1*16 = 19 en decimal

Ya hemos visto implcitamente, cmo transformar un nmero binario en decimal, el proceso inverso (transformar un nmero decimal en binario), lo veremos ms adelante, cuando estudiemos el mtodo general para transformar nmeros en cualquier base.Operaciones aritmticas en binarioLos nmeros binarios se pueden sumar, restar, multiplicar y dividir de igual forma que los decimales, slo es necesario conocer las "tablas" correspondientes. Veamos primero la suma.Para sumar en decimal los nmeros 19 y 28, los colocamos de la siguiente forma:+1928

Y a continuacin hacemos: "9 ms 8 igual 7 y me llevo 1, 1 ms 1 ms 2 igual 4" el resultado es 47, es decir:

+11928

=47

Al sumar 9 y 8 nos da un resultado superior a 9, es decir, superior al dgito ms alto de nuestro sistema, por lo que decimos que "nos llevamos una", esta "una" que "nos llevamos" se denomina en binario "acarreo" (o "carry" en ingls). Cuando se suma en binario, es necesario tener en cuenta el acarreo.Vamos ahora a ver la "tabla de sumar" en binario:0 + 0 = 00 + 1 = 11 + 1 = 10

Es decir, cuando sumamos 1 ms 1 el resultado es 0 pero se produce un acarreo de 1. Veamos un ejemplo: vamos a sumar los nmeros 19 y 28 en binario, 19 es 10011 y 28 es 11100, de esta forma:

+1010011011100

=101111

El resultado es 101111, o bien 47 en decimal. Al sumar los dos unos de la izquierda, se ha producido un acarreo que hemos anotado encima de la siguiente columna. Al igual que en decimal, los ceros a la izquierda son irrelevantes.Es interesante saber cmo realiza el ordenador esta operacin. El programador de Basic, seguramente, est familiarizado con los operadores lgicos AND, OR y NOT, pero quiz no lo est tanto con el operador EXOR (OR exclusivo). A continuacin se muestran las "tablas de verdad" correspondientes a estos operandos. Es conveniente manejar con facilidad el operador EXOR, ya que se utiliza con frecuencia al programar en cdigo mquina.0 AND 0 = 00 AND 1 = 01 AND 0 = 01 AND 1 = 1

0 OR 0 = 00 OR 1 = 11 OR 0 = 11 OR 1 = 1

NOT 0 = 1NOT 1 = 0

0 EXOR 0 = 00 EXOR 1 = 11 EXOR 0 = 11 EXOR 1 = 0

El equivalente elctrico del operador AND, seran dos interruptores en serie, el del operador OR, dos interruptores en paralelo. Siguiendo la misma analoga, el equivalente elctrico del operador EXOR, seran dos interruptores conmutados, como los que se utilizan frecuentemente para encender y apagar la luz de una habitacin desde dos puntos distintos.Vistas estas tablas, no es dificil deducir la correspondencia con la tabla de sumar vista anteriormente. La suma se obtiene mediante una operacin EXOR entre los dos bits, y el acarreo se obtiene mediante una operacin AND. Esta correspondencia es la que permite a un ordenador realizar clculos, ya que elctricamente, slo es posible realizar operaciones lgicas.No obstante, no se preocupe el lector por tener que realizar operaciones lgicas bit a bit cada vez que quiera sumar dos nmeros, el juego de instrucciones del microprocesador Z-80, afortunadamente, incluye las instrucciones necesarias para realizar sumas y restas de forma bastante sencilla.Nmeros negativosHemos visto cmo suma un ordenador, pero cmo resta? Para conseguir restar en binario, tendremos que establecer antes un convenio sobre qu consideramos nmeros negativos.Se denomina "complemento a 1" de un bit a lo que le falta a ese bit para ser "1", es decir, el complemento de "1" es "0" y el de "0" es "1" (el complemento a 1 viene dado por el operador lgico NOT). Por tanto, el complemento a 1 de un nmero binario es el resultado de cambiar sus "unos" por "ceros" y sus "ceros" por "unos". Por ejemplo: el complemento a 1 de "10011101" es "01100010".Por otro lado, se denomina "complemento a 2" al "complemento a 1" ms 1, es decir, al resultado de cambiar los unos por ceros y los ceros por unos, y luego sumar uno. Veamos algunos ejemplosPodra parecer algo arbitrario, sin embargo es smamente til, ya que como veremos a continuacin, es posible usar el complemento a 2 de un nmero como su negativo. Para restar dos nmeros, sumamos al "minuendo" el complemento a 2 del "sustraendo". Vamos a ver algunos ejemplos, trabajando con nmeros de 8 bits, que son los que utiliza el Z-80 (de hecho, tambin utiliza nmeros de 16 bits, pero sera demasiado largo para un simple ejemplo). Vamos a restar 28 menos 19, para lo cual sumamos a 28 el complemento a 2 de 19:-2819

=9

+0001110011101101

=100001001

Obtenemos el nmero "00001001" con un acarreo de "1". El acarreo nos indica que el resultado es positivo, es decir, el resultado es "+9" como caba esperar.Ahora vamos a realizar la operacin inversa, es decir, vamos a restar 19 menos 28 por tanto, tendremos que sumar a 19 el complemento a 2 de 28:-1928

=-9

+0001001111100100

=011110111

Esta vez hemos obtenido el nmero "11110111" con un acarreo de "0". El hecho de que el acarreo sea "0" nos indica que el nmero es negativo, y "11110111" es, precisamente, complemento a 2 de "9", es decir, "-9" como tambin caba esperar.Un hbil lector habr comprobado que, trabajando con nmeros de 8 bits, podemos saber si un nmero es negativo con slo mirar el primer bit (el de ms a la izquierda); si este bit es "1", el nmero ser negativo. Bien, esto no siempre es cierto. Trabajando con 8 bits, se pueden representar 256 nmeros distintos (desde 0 hasta 255), el Z-80 los considera casi siempre, todos positivos, pero hay veces que considera positivos a los 128 primeros (desde 0 a 127) y negativos a los 128 restantes (desde 128 a 255). En este ltimo caso, s funciona la regla explicada anteriormente, y de hecho, al bit de ms a la izquierda se le denomina "bit de signo".De esta forma, 255 sera equivalente a "-1", 254 a "-2", 253 a "-3", y as sucesivamente hasta 128 que sera en realidad, "-128". Podra parecer un poco "lioso", pero con un poco de imaginacin, se puede asimilar al funcionamiento de un cuenta-kilmetros de automvil. Si partimos de un nmero cualquiera y vamos restando 1, llegar un momento que obtendremos "00000000", si a continuacin volvemos a restar 1, obtendremos "11111111"(ms un acarreo, lgicamente), es decir, "255" en decimal, si volvemos a restar 1, obtendremos "254"; parece lgico asignar a "255" el valor "-1" y a "254" el "-2" y as sucesivamente. En la segunda columna de la FIGURA 2, podr ilustrar esto con mayor claridad.

Sistema hexadecimalComo hemos visto, los nmeros binarios son muy adecuados para su uso en aparatos electrnicos, pero tienen un gran inconveniente; cuando los escribimos, necesitamos una gran cantidad de cifras para representar un nmero relativamente pequeo. Si pudiramos agrupar los bits, conseguiramos evitar este inconveniente.Dado que vamos a trabajar con 8 o 16 bits, parece lgico agruparlos de 4 en 4 con el fin de obtener nmeros de 2 o 4 cifras. Como regla general, con "n" bits se pueden obtener "2 elevado a n" combinaciones distintas, por tanto, con 4 bits podemos obtener 16 combinaciones, cada una de las cuales las asociaremos con un dgito hexadecimal.Necesitamos 16 dgitos para representar todas las posibles combinaciones, como slo conocemos 10 dgitos distintos (del 0 al 9), utilizaremos las 6 primeras letras maysculas del abecedario (de la "A" a la "F"). En la FIGURA 3 se pueden ver las 16 combinaciones posibles con 4 bits y su equivalente en hexadecimal.Supongamos el nmero binario "01101100", siguiendo la tabla de la FIGURA 3, podemos escribirlo como "6Ch". Hemos esxrito "6" en lugar de "0110" y "C" en lugar de "1100", la "h" se aade al final para indicar que se trata de un nmero hexadecimal y no confundirlo con uno decimal. A los nmeros hexadecimales se les denomina con frecuencia, simplemente, "Hexa".La forma de transformar un nmero Hexa en decimal, es sumamente sencilla, basta con multiplicar el valor de cada dgito por 16 elevado a la correspondiente potencia (como hacamos anteriormente para los binarios y decimales); habr que tener en cuenta, que "A" vale 10, "B" vale 11, "C" vale 12, "D" vale 13, "E" vale 14 y "F" vale 15. Veamos algn ejemplo, vamos a convertir a decimal el nmero "5CB2h":5CB2h = 2*160+ B*161+ C*162+ 5*163

es decir:5CB2h = 2*1 + 11*16 + 12*256 + 5*4096 = 23730

El resultado es "23730" en decimal, precisamente la direccin de la variable del Sistema "RAMTOP". Las direcciones de memoria en el Spectrum son siempre nmeros Hexa de 4 cifras, la razn es que existen 65536 direcciones posibles, que es el nmero de combinaciones que se pueden hacer con 16 bits, es decir, cuatro cifras hexadecimales.Si contempla un mapa de memoria del Spectrum, las direcciones que definen el inicio de las distintas zonas pueden parecer algo arbitrarias; pero estos nmeros vistos en Hexa, resultan ser "nmeros redondos"; vamos a comprobarlo: 16384 (el principio de la RAM) es 4000h en Hexa, 65535 (el final de la RAM) es FFFFh, 1024 (1K) es 0400h, 16K es 4000h, 32K es 8000h, 48K es C000h y finalmente, 64K es 10000h. El archivo de pantalla ocupa desde 4000h hasta 5800h, el de atributos desde 5800h hasta 5B00h, el buffer de impresora va desde 5B00h hasta 5C00h, la pantalla ocupa 1800h bytes, los atributos 300h bytes y el buffer de impresora 100h bytes.Esto quiere decir que si hemos de trabajar directamente sobre la memoria, es preferible que nos vayamos acostumbrando a contar en hexadecimal.Conversin entre basesHasta ahora hemos visto cmo pasar nmeros desde cualquier base a decimal; ahora vamos a estudiar el proceso inverso, pasar nmeros de base decimal a cualquier base.Este proceso es algo tedioso para realizarlo "a mano", as que normalmente usaremos un programa de ordenador, de hecho, la mayora de ensambladores tienen una opcin que nos permite pasar nmeros a hexadecimal, y si an no tiene un ensamblador, puede utilizar el PROGRAMA 1 para pasar nmeros a y desde cualquier base.No obstante, es necesario saber cmo se realiza el proceso, entre otras cosas, para ser capaz de escribir un programa que lo haga. Como regla general, para pasar un nmero de base decimal a cualquier base, se divide el nmero por la base sin sacar decimales, el resto es el primer dgito de nuestro nmero (empezando por la derecha). A continuacin se vuelve a dividir el cociente, y se toma el nuevo resto como el siguiente nmero, y as sucesivamente hasta que obtengamos en cociente de cero. Recuerde que no debe sacar decimales.En la FIGURA 4 hemos realizado el proceso para pasar el nmero 23730 a Hexa, y en la FIGURA 5 hemos pasado el mismo nmero a binario.Como regla general, a partir de ahora representaremos los nmeros hexadecimales seguidos de una "h" y los binarios, seguidos de una "b".Con el PROGRAMA 1, podr introducir un nmero en decimal, binario o Hexa, y el programa devolver como resultado, ese mismo nmero en decimal, Hexa y binario. Cuando introduzca un nmero binario, indquelo terminando el nmero con una "b" minscula, si introduce un nmero hexadecimal, termnelo con una "h" tambin minscula, los nmeros decimales deber teclearlos tal cual. Por ltimo, no olvide que las cifras que componen un nmero hexadecimal, deben ser nmeros o letras maysculas entre la "A" y la "F". En aras de una mayor rapidez de ejecucin, el programa no est protegido contra entradas errneas. Los nmeros no deben ser mayores de 65535 (FFFFh o 1111111111111111b).

Tambin tengo una lista mucho ms larga decolores hexadecimales y sus nombres.Prueba a escribir el cdigo hexadecimal en el mezclador de arriba, y mira lo que sale(puedes copiar, despus pulsar con el botn derecho en el recuadro y "pegar").HexadecimalesDecimalesNmeros binarios, decimales y hexadecimalesConversor binario/decimal/hexadecimalHex Drums

Nmeros hexadecimalesLos nmeroshexadecimalesson interesantes. Hay 16 dgitos diferentes! Son como los decimales hasta el 9, pero despus hay letras ("A',"B","C","D","E","F") para los valores de 10 a 15.As que con una sola cifra hexadecimal se pueden dar 16 valores diferentes en lugar de los 10 de siempre:Decimal:0123456789101112131415

Hexadecimal:0123456789ABCDEF

Tabla de comparacinLa tabla siguiente compara la representacin de los enteros entre 8 y -8 (incluidos) usando 4 bits.Representacin de enteros de 4 bits

DecimalEntero sin signoSigno y MagnitudComplemento a unoComplemento a dosEn exceso a 7

+81000n/dn/dn/d1111

+701110111011101111110

+601100110011001101101

+501010101010101011100

+401000100010001001011

+300110011001100111010

+200100010001000101001

+100010001000100011000

+000000000000000000111

-0n/d10001111n/dn/d

-1n/d1001111011110110

-2n/d1010110111100101

-3n/d1011110011010100

-4n/d1100101111000011

-5n/d1101101010110010

-6n/d1110100110100001

-7n/d1111100010010000

Sistema binarioElsistema binario, llamado tambinsistema didico1enciencias de la computacin, es unsistema de numeracinen el que losnmerosse representan utilizando solamente lascifrasceroyuno(0y1). Es uno de los que se utiliza en lascomputadoras, debido a que trabajan internamente con dos niveles devoltaje, por lo cual su sistema de numeracin natural es el sistema binario (encendido1, apagado0)2.Historia del sistema binarioPgina del artculoExplication de l'Arithmtique Binairede Leibniz.El antiguo matemtico indioPingalapresent la primera descripcin que se conoce de un sistema de numeracin binario en el siglo tercero antes de nuestra era, lo cual coincidi con su descubrimiento del concepto del nmero cero.Una serie completa de 8 trigramas y 64 hexagramas (anlogos a 3bits) y nmeros binarios de 6 bits eran conocidos en la antigua China en el texto clsico delI Ching. Series similares de combinaciones binarias tambin han sido utilizadas en sistemas de adivinacin tradicionales africanos, como elIf, as como en lageomanciamedieval occidental.Un arreglo binario ordenado de loshexagramasdel I Ching, representando la secuencia decimal de 0 a 63, y un mtodo para generar el mismo fue desarrollado por el erudito y filsofo ChinoAdgarten el siglo XI.En 1605Francis Baconhabl de un sistema por el cual las letras del alfabeto podran reducirse a secuencias de dgitos binarios, las cuales podran ser codificadas como variaciones apenas visibles en la fuente de cualquier texto arbitrario.El sistema binario moderno fue documentado en su totalidad porLeibniz, en el siglo XVII, en su artculo "Explication de l'Arithmtique Binaire". En l se mencionan los smbolos binarios usados por matemticos chinos. Leibniz utiliz el 0 y el 1, al igual que el sistema de numeracin binario actual.En1854, el matemtico britnicoGeorge Boolepublic un artculo que marc un antes y un despus, detallando un sistema de lgica que terminara denominndoselgebra de Boole. Dicho sistema desempeara un papel fundamental en el desarrollo del sistema binario actual, particularmente en el desarrollo de circuitos electrnicos.AplicacionesEn 1937,Claude Shannonrealiz su tesis doctoral en elMIT, en la cual implementaba ellgebra de Booley aritmtica binaria utilizandorelsyconmutadorespor primera vez en la historia. TituladaUn 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 losLaboratorios Bell, construy una computadora basada enrelsa la cual apod "Modelo K" (porque la construy en una cocina, en ingls "kitchen") que utilizaba la suma binaria para realizar los clculos. LosLaboratorios Bellautorizaron 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. En una demostracin en la conferencia de laSociedad Estadounidense de Matemtica, 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 unteletipo. 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 fueronJohn von Neumann,John MauchlyyNorbert Wiener, quien escribi acerca de dicho suceso en sus diferentes tipos de memorias en la cual alcanz diferentes logros.Vase tambin:Cdigo binarioRepresentacinEjemplo: el sistema binario puede ser representado solo por dos dgitos.Un nmero binario puede ser representado por cualquier secuencia de bits (dgitos binarios), que suelen representar cualquier mecanismo capaz de usar dos estados mutuamente excluyentes. Las siguientes secuencias de smbolos podran ser interpretadas como el mismo valor numrico binario:1 0 1 0 0 1 1 0 1 0| - | - - | | - | -x o x o o x x o x oy n y n n y y n y nEl 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 arbigos, 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)Conversin entre binario y decimalDecimal a binarioSedivideel nmero del sistema decimal entre2, cuyo resultado entero se vuelve adividir entre 2, y as sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el nmero a dividir sea 1 finaliza la divisin.A continuacin se ordenan los restos empezando desde el ltimo al primero, simplemente se colocan en orden inverso a como aparecen en la divisin, se les da la vuelta. ste ser el nmero binario que buscamos.EjemploTransformar el nmero decimal 131 en binario. El mtodo es muy simple:131 dividido entre 2 da 65 y el residuo es igual a 1 65 dividido entre 2 da 32 y el residuo es igual a 1 32 dividido entre 2 da 16 y el residuo es igual a 0 16 dividido entre 2 da 8 y el residuo es igual a 0 8 dividido entre 2 da 4 y el residuo es igual a 0 4 dividido entre 2 da 2 y el residuo es igual a 0 2 dividido entre 2 da 1 y el residuo es igual a 0 1 dividido entre 2 da 0 y el residuo es igual a 1 -> Ordenamos los residuos, del ltimo al primero: 10000011En sistema binario, 131 se escribe 10000011EjemploTransformar el nmero decimal 100 en binario.

Otra forma de conversin consiste en un mtodo parecido a la factorizacin ennmeros 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.Ejemplo100|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, 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|0 21= 2|0 22= 4|0 23= 8|0 24= 16|0 25= 32|0 26= 64|0 27= 128|1 Decimal (con decimales) a binarioPara transformar un nmero del sistema decimal al sistema binario:1. Se transforma la parte entera a binario. (Si la parte entera es 0 en binario ser 0, si la parte entera es 1 en binario ser 1, si la parte entera es 5 en binario ser 101 y as sucesivamente).2. Se sigue con la parte fraccionaria, multiplicando cada nmero por 2. Si el resultado obtenido es mayor o igual a 1 se anota como un uno (1) binario. Si es menor que 1 se anota como un 0 binario. (Por ejemplo, al multiplicar 0.6 por 2 obtenemos como resultado 1.2 lo cual indica que nuestro resultado es un uno (1) en binario, solo se toma la parte decimal del resultado).3. Despus de realizar cada multiplicacin, se colocan los nmeros obtenidos en el orden de su obtencin.4. Algunos nmeros se transforman en dgitos peridicos, por ejemplo: el 0.1.Ejemplo0,3125 (decimal) => 0,0101 (binario).Proceso:0,3125 2 = 0,625 => 00,625 2 = 1,25 => 10,25 2 = 0,5 => 00,5 2 = 1 => 1 En orden: 0101 -> 0,0101 (binario)Ejemplo0,1 (decimal) => 0,0 0011 0011 ... (binario). Proceso: 0,1 2 = 0,2 ==> 00,2 2 = 0,4 ==> 00,4 2 = 0,8 ==> 00,8 2 = 1,6 ==> 10,6 2 = 1,2 ==> 10,2 2 = 0,4 ==> 0 0 1 1 0,0 0011 0011 ... (binario peridico)Ejemplo5.5 = 5,55,5 (decimal) => 101,1 (binario).Proceso:5 => 1010,5 2 = 1 => 1En orden: 1 (un slo dgito fraccionario) -> 101,1 (binario)Ejemplo6,83 (decimal) => 110,110101000111 (binario).Proceso:6 => 1100,83 2 = 1,66 => 10,66 2 = 1,32 => 10,32 2 = 0,64 => 00,64 2 = 1,28 => 10,28 2 = 0,56 => 00,56 2 = 1,12 => 10,12 2 = 0,24 => 00,24 2 = 0,48 => 00,48 2 = 0,96 => 00,96 2 = 1,92 => 10,92 2 = 1,84 => 10,84 2 = 1,68 => 1En orden: 110101000111 (binario)Parte entera: 110 (binario)Encadenando parte entera y fraccionaria: 110,110101000111 (binario)Binario a decimalPara realizar la conversin de binario a decimal, realice lo siguiente:1. 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).2. 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.EjemploEl 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:

Binario a decimal (con parte fraccionaria binaria)1. Inicie por el lado izquierdo (la primera cifra a la derecha de la coma), cada nmero multiplquelo por 2 elevado a la potencia consecutiva a la inversa (comenzando por la potencia -1, 2-1).2. Despus de realizar cada una de las multiplicaciones, sume todas y el nmero resultante ser el equivalente al sistema decimal.Ejemplos 0,101001 (binario) = 0,640625(decimal). Proceso:1 2 elevado a -1 = 0,50 2 elevado a -2 = 01 2 elevado a -3 = 0,1250 2 elevado a -4 = 00 2 elevado a -5 = 01 2 elevado a -6 = 0,015625La suma es: 0,640625 0,110111 (binario) = 0,859375(decimal). Proceso:1 2 elevado a -1 = 0,51 2 elevado a -2 = 0,250 2 elevado a -3 = 01 2 elevado a -4 = 0,06251 2 elevado a -5 = 0,031251 2 elevado a -6 = 0,015625La suma es: 0,859375Operaciones con nmeros binariosSuma de nmeros binariosLatabla de sumarpara nmeros binarios es la siguiente:+ 0 1

0 0 1

1 110

Las posibles combinaciones al sumar dos bits son: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10Note que al sumar 1 + 1 es 102, es decir, llevamos 1 a la siguiente posicin de la izquierda (acarreo). Esto es equivalente en el sistema decimal a sumar 9 + 1, que da 10: cero en la posicin que estamos sumando y un 1 de acarreo a la siguiente posicin.Ejemplo 1 10011000 + 00010101 10101101Se puede convertir la operacin binaria en una operacin decimal, resolver la decimal, y despus transformar el resultado en un (nmero) binario. Operamos como en el sistema decimal: comenzamos a sumar desde la derecha, en nuestro ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado yllevamos1 (este "1" se llamaacarreooarrastre). A continuacin se suma el acarreo a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas las columnas (exactamente como en decimal).Resta de nmeros binariosEl algoritmo de la resta en sistema binario es el mismo que en el sistema decimal. Pero conviene repasar la operacin de restar en decimal para comprender la operacin binaria, que es ms sencilla. Los trminos que intervienen en la resta se llaman minuendo, sustraendo y diferencia.Las restas bsicas 0 - 0, 1 - 0 y 1 - 1 son evidentes: 0 - 0 = 0 1 - 0 = 1 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 =1yme llevo1 (este valor se resta al resultado que obtenga, entre el minuendo y el sustraendo de la siguiente columna), lo que equivale a decir en el sistema decimal, 2 - 1 = 1.Ejemplos 10001 11011001 -01010 -10101011 00111 00101110En 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 -0010 = 010000101011 0100 0010 1011 Utilizando elcomplemento a dos(C2). La resta de dos nmeros binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo.EjemploLa siguiente resta, 91 - 46 = 45, en binario es: 1011011 1011011 -0101110 el C2 de 0101110 es 1010010 +1010010 0101101 10101101En 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 111000100Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto: 11000100 en binario, 196 en decimal.Utilizando elcomplemento 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 desbordaProducto de nmeros binariosLatabla de multiplicarpara nmeros binarios es la siguiente: 0 1

0 0 0

1 0 1

El algoritmo delproductoen binario es igual que en nmeros decimales; aunque se lleva a cabo con ms sencillez, ya que el 0 multiplicado por cualquier nmero da 0, y el 1 es elelemento neutrodel producto.Por ejemplo, multipliquemos 10110 por 1001: 10110 1001 10110 00000 00000 10110 11000110En sistemas electrnicos, donde suelen usarse nmeros mayores, se utiliza el mtodo llamadoalgoritmo de Booth. 11101111 111011 __________ 11101111 11101111 00000000 11101111 11101111 11101111 ______________ 11011100010101Divisin de nmeros binarioLadivisinen binario es similar a ladecimal; la nica diferencia es que a la hora de hacer las restas, dentro de ladivisin, stas deben ser realizadas en binario.Ejemplo

Dividir 100010010 (274) entre 1101 (13): 100010010 /1101 = 010101 -0000 10001 -1101 01000 - 0000 10000 - 1101 00111 - 0000 01110 - 1101 00001Conversin entre sistema binario y octalSistema binario a octalDebido a que el sistema octal tiene como base 8, que es la tercera potencia de 2, y que dos es la base del sistema binario, es posible establecer un mtodo directo para convertir de la base dos a la base ocho, sin tener que convertir de binario a decimal y luego de decimal a octal. Este mtodo se describe a continuacin:Para realizar la conversin de binario a octal, realice lo siguiente:1) Agrupe la cantidad binaria en grupos de 3 en 3 iniciando por el lado derecho. Si al terminar de agrupar no completa 3 dgitos, entonces agregue ceros a la izquierda.2) Posteriormente vea el valor que corresponde de acuerdo a la tabla:Nmero en binario000001010011100101110111

Nmero en octal01234567

3) La cantidad correspondiente en octal se agrupa de izquierda a derecha.Ejemplos 110111 (binario) = 67 (octal). Proceso:111 = 7110 = 6Agrupe de izquierda a derecha: 67 11001111 (binario) = 317 (octal). Proceso:111 = 7001 = 111 entonces agregue un cero, con lo que se obtiene 011 = 3Agrupe de izquierda a derecha: 317 1000011 (binario) = 103 (octal). Proceso:011 = 3000 = 01 entonces agregue 001 = 1Agrupe de izquierda a derecha: 103Si 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 Agrege la parte entera: 0.32Octal a binarioCada 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.Conversin entre binario y hexadecimalBinario a hexadecimalPara realizar la conversin de binario a hexadecimal, realice lo siguiente:1) Agrupe la cantidad binaria en grupos de 4 en 4 iniciando por el lado derecho. Si al terminar de agrupar no completa 4 dgitos, entonces agregue ceros a la izquierda.2) Posteriormente vea el valor que corresponde de acuerdo a la tabla:Nmero en binario0000000100100011010001010110011110001001101010111100110111101111

Nmero en hexadecimal0123456789ABCDEF

3) La cantidad correspondiente en hexadecimal se agrupa de derecha a izquierda.Ejemplos 110111010 (binario) = 1BA (hexadecimal). Proceso:1010 = A1011 = B1 entonces agregue 0001 = 1Agrupe de derecha a izquierda: 1BA 11011110101 (binario) = 6F5 (hexadecimal). Proceso:0101 = 51111 = F110 entonces agregue 0110 = 6Agrupe de derecha a izquierda: 6F5Hexadecimal a binarioNote 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 ReflejadoDecimalBinarioHexadecimalOctalBCDExceso 3Grayo Reflejado

0000000000000110000

1000111000101000001

2001022001001010011

3001133001101100010

4010044010001110110

5010155010110000111

6011066011010010101

7011177011110100100

81000810100010111100

91001911100111001101

101010A120001 00001111

111011B130001 00011110

121100C140001 00101010

131101D150001 00111011

141110E160001 01001001

151111F170001 01011000

Tabla de conversin entre binario, factor binario, hexadecimal, octal y decimalBinarioFactor binarioHexadecimalOctalDecimal

0000 001021222

0000 010022444

0000 1000238108

0001 000024102016

0010 000025204032

0100 0000264010064

1000 00002780200128

Ttulo:Conversin de bases numricasPublicado por:jepen09 Julio 2010, 07:38:35 pmhace tiempo que quiero hacer este tutorial, vi varios que hablan sobre cambios de bases para binario o hexa, pero no llegu a ver uno general, tampoco alguno que explique mejor los conceptos

Lo primero es hacer una diferencia, muy importante, que no nos sirve para resolver el problema, pero si para entenderlo ms a fondo

cuando hablamos de un numero, generalmente asumimos, incluso pensamos que el numero est en base 10, claro, es lgico, ya que siempre se enseo asi, pero lo mejor es separar las cosas.un numero es un numero, un concepto abstracto que nos sirve para cuantificar las cosas, pero es totalmente independiente a la base que usemos, parece evidente lo que digo, y que todo el mundo lo sabe, pero no es asi.

NUMERO: expresa una cantidad, con l se hacen las operaciones matematicas (suma, resta , multiplicacion, ... )REPRESENTACION NUMERICA: el numero necesita una forma de escribir, alguna, sea la que sea, sino no podemos expresarlo, la representacion numerica es una lista de digitos, cada digito es de nuevo un numero, la representacin de ese numero est definido por un simbolo (los dibujitos de los numeros, o las letras en su defecto, pero ese simbolo tambien es independiente al numero, solo que necesitamos una convencion para entendernos)

asi, que yo diga 425 y defina que est en base 10, quiere decir cada digito podra tener diez valores diferentes, es una lista de posibles valores [4,2,5], en esta lista, estamos usando de nuevo el numero en base 10 para representarlo, pero eso no es siempre asi, es mas, la PC no usa base 10 para representar ese numero, ese numero, en base 10 podra estar escrito asi [100,10,101], es la misma lista de digitos, solo que en vez de representar los digitos en base 10, los estamos expresando en binario

pondremos un ejemplo(para representar un numero en base16 colocaremos un 0x antecediendolo)como haras para pasar 0x3A a base 10 ?

lo que todo el mundo dice es esto3*16 + 10 = 58y listo el problema

pero la realidad es que no se ha convertido el numero a base 10, solo se ha calculado, a partir de la representacin del numero, su valor en forma numrica, pero para los humanos es natural pensar que el numero est en base 10.

que pasa si esto lo hacemos en una PC ? la pc no piensa como nosotros en base 10, la pc piensa en binario, asi que si queriamos hacer esta operacion, para la pc seria algo asi0x3A = [ 3 , A ] = [ 11b, 1010b] (esta es la representacion del numero en base 16 para alguien que piensa en binario)y la operacin que hicimos hace rato sera algo asi como esto:

11b* 10000b+ 1010 = 111010b

que pas esta vez, hicimos la misma operacin que hace rato, pero en vez de pensar en base 10 estamos pensando en binario, y el resultado es un binario, es porque esta operacion, no es realmente para pasar a base 10, es para pasar una representacin numerica, a un numero (el numero va ser expresado siempre de la manera como pensamos)

ahora viene la duda, si yo escribo en la pc la operacin3*16 + 10que hace la pc ?primero convierte eso que escribimos a binario, despues hace la operacion en binario (asi como vimos recien), y despues ese resultado vuelve a pasar a decimal, para que lo podamos entender

entonces, para resumir esta primera parte, llegamos a que la formula que generalmente usamos para pasar a base10, realmente sirve para pasar una representacin numrica, a un numero de verdad, ese numero de verdad, para poder imprimir tendr que tener alguna representacion pero depender de quien esta pensando y calculando.

la formula genrica, para calcular el numero es asisuponemos nuestro numero de 4 digitos X4 X3 X2 X1 que est en base N

X4 * N3+ X3 * N2+ X2 * N1+ X1 * N0 = NUMERO (se sabe que N1=N y N0=1 pero igual lo coloco, porque me parece mas didactico)

con esto legamos a la primera parte, que es calcular el numero, a partir de cualquier base, vamos a unos ejemplos, pero para tratar de abstraernos de usar base10, vamos a usar base16 para representar los numeros

numero en base 0x210011b= 0x1 * 0x20x4+ 0x0 * 0x20x3+ 0x0 * 0x20x2+ 0x1 * 0x20x1+ 0x1 * 0x20x0 = 0xD3

numero en base 0x845128= 0x4 * 0x80x3+ 0x5 * 0x80x2+ 0x1 * 0x80x1+ 0x2 * 0x80x0= 0x94A

numero en base 0x14 ( base 20 en decimal ) - los digitos son ( 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J )(vemos el valor de cada digito)2 = 0x2G = 0x10F = 0xFJ = 0x132GFJ20= 0x2 * 0x140x3+ 0x10 * 0x140x2+ 0xF * 0x140x1+ 0x13 * 0x140x0= 0x58BF

espero que esta parte ya est mas clara, es la ms importante, si se entendi hasta aqui, lo dems ya es muy simple

una vez que tenemos el numero, podemos pasar a cualquier base

cuando un numero se multiplica por su base, todos los digitos corren a la izquierda, y se agrega un cero (como cuando en base10 se multiplica por 10)y cuando se divide un numero por su base, corren los digitos a la derecha, y el ultimo digito sale, este ultimo queda como resto.esa es la tecnica que se usa para sacar los digitos para cualquier base numerica, vamos recogiendo los restos de las divisiones hasta conseguir todos los digitos (eso pasa cuando el cociente es CERO)

ejemplo, para pasar un numero a base10 hacemos0x58BF / 0xA = 0x8DF resto= 0x90x8DF / 0xA = 0xE3 resto= 0x10xE3 / 0xA = 0x16 resto= 0x70x16 / 0xA = 0x2 resto= 0x20x2 / 0xA = 0x0 resto= 0x2

entonces el numero 0x58BF = 227190xA(base 10)

vamos con el mismo ejemplo, pero dejemos de pensar en base16, vamos volver a lo que estamos acostumbrados, base 10, y vamos convertir 0x58BF=227190xArepresentado en base10 a su misma base

22719 / 10 = 2271 resto= 92271 / 10 = 227 resto= 1227 / 10 = 22 resto= 722 / 10 = 2 resto= 22 / 10 = 0 resto= 2

cual es la diferencia entre lo que teniamos antes de la conversin y lo que sale de ella, aparentemente es lo mismo, es solo una diferencia de conceptos, lo que teniamos al principio era el nmero en s, y lo que sacamos es una representacin de ese numero.

para los que pensamos en base 10 esto parece casi sin sentidoen una pc, como esta piensa en binario, tiene que hacer esta operacin, para poder ver el numero en base 10

y por ultimo, como se hace para pasar de una representacin numerica a otra, cualquiera.lo que hay que hacer es primero, convertir la representacion numerica, al numero en s, que va estar representado de acuerdo al que este leyendo (si es una PC va estar en binario, si es una persona va estar en decimal)

y una vez que tenemos el numero, podemos hacer las divisiones sucesivas para pasarlo a cualquier base numrica

para el numero 2GFJ20llegamos a hacer las 2 operaciones necesarias, primero pasamos de la representacion al numero (expresado en base16, pero como ya dije, eso depende del que hace las operaciones )2GFJ20= 0x2 * 0x140x3+ 0x10 * 0x140x2+ 0xF * 0x140x1+ 0x13 * 0x140x0= 0x58BFy despus a la representacin que nos interesa

0x58BF / 0xA = 0x8DF resto= 0x90x8DF / 0xA = 0xE3 resto= 0x10xE3 / 0xA = 0x16 resto= 0x70x16 / 0xA = 0x2 resto= 0x20x2 / 0xA = 0x0 restp= 0x2

entonces el numero 2GFJ20= 0x58BF = 2271910

Dgitos binarios, Niveles Lgicos y formas de onda digitales.

Los dgitos se emplean en un sistema de numeracin binaria o de base 2, que es el digito tiene un valor 0 o un valor 1. Donde estos dgitos se llaman bits (binary digit). Bit es la unidad de almacenamiento ms pequeo.En los circuitos digitales existen dos niveles de tensin distintos para los dos bits. Un 1 representa el nivel de tensin alto (High) y un 0 el nivel de tensin bajo (Low). Esta forma recibe el nombre de Lgica Positiva. Cuando un 1 representa un nivel bajo y un 0 es un nivel alto se llama Lgica Negativa.

Formas de onda digital

Toda seal digital consisten en niveles de tensin que varan de nivel Alto y Bajo.Un impulso positivo es cuando la tensin pasa de su nivel Bajo hasta un nivel Alto y luego regresa al nivel Bajo.Un impulso negativo es cuando la tensin pasa de un nivel Alto hasta un nivel Bajo, y regresa nuevamente a nivel Alto.Un impulso posee dos flancos: flanco de subida (flanco anterior) que se produce en un tiempo TO(tiempo de subida) y flanco de baja (flanco posterior) que se produce en un tiempo T1 (tiempo de bajada). El tiempo de subida se mide como el tiempo que tarda en pasar del 10% al 90% de distancia de la lnea base y el tiempo de bajada se mide como el tiempo que tarda en pasar del 90% al 10% de la amplitud del impulso. La anchura del impulso (Tw) es una medida de la duracin del impulso, es el intervalo de tiempo que transcurre entre los puntos en los que la amplitud es del 50% en el flanco de subida y el de bajada.

Caractersticas de la formas de onda

Los trenes de impulsos se dividen peridicos y no peridicos.

Un tren de impulsos peridico es aquel que se repite a intervalos de tiempo fijos, que recibe el nombre de periodo (T) a ese intervalo de tiempo fijo. La frecuencia (f) es la velocidad a la que se repite y se mide hertios (Hz).

Un tren de impulsos no peridico no se repite a intervalos de tiempo fijo y puede estar compuesto de impulsos de diferentes anchos o intervalos diferentes tiempo entre impulsos.

La frecuencia de un tren de impulsos es el inverso del periodo.La relacin es:f=1/TT=1/fEn un sistema digital, todas las seales se sincronizan con una seal de temporizacin llamado reloj. El reloj es una seal peridica en la cada intervalo entre impulsos equivale a la duracin de un bit.Niveles lgicosLos CIs digitales trabajan con dos mrgenes de tensiones (suficientemente separadas) que codifican un dgito de cdigo binario: 1 o 0. Estas tensiones reciben el nombre de niveles lgicos y como ya hemos dicho, tanto el nivel lgico alto (1) como el bajo (0) son un intervalo de tensiones.Figure 1.1:Niveles lgicos.

La figura1.1ilustra el rango general de variacin para los niveles alto y bajo. El lmiteVH(max)representa el mximo valor permitido para el nivel alto y el lmiteVH(min)representa el mnimo valor que puede tomar el nivel alto. Idnticas definiciones existen para el nivel mnimo (VL(max)yVL(min)). El rango de tensiones entreVL(max)yVH(min)representa un intervalo de incertidumbre. Una tensin dentro de dicho rango podra ser interpretada por el elemento lgico que la utiliza, como un nivel alto o como un nivel bajo, pero nunca se podra determinar con seguridad cual ser la interpretacin a priori.Por ltimo diremos que los niveles lgicos son en general distintos sin estamos considerando la entrada o la salida del elemento lgico.TTLEn la entrada de los circuitos TTL, el nivel lgico bajo puede ser representado por cualquier tensin comprendida entre 0V y 0.8V, y el nivel lgico alto por cualquier tensin entre 2V y 5V. En rango de valores entre 0.8V y 2V es la regin de funcionamiento impredecible.

Figure 1.2:Niveles lgicos TTL.

En la salida, los rangos varan sensiblemente. Un 0 se representa por cualquier tensin entre 0V y 0.4V, y un 1 se representa mediante cualquier tensin entre 2.4V y 5V. La descripcin grfica de sto se muestra en la figura1.2.CMOSEn la entrada, un 0 est representado por cualquier tensin entre 0V y 1.5V, y un 1 por cualquier entre 3.5V y 5V.Figure 1.3:Niveles lgicos CMOS.

I.1 Definicin. Denominamos sistema digital a aqul que realiza operaciones mediante dgitos, los cuales usualmente se representan como nmeros binarios. Las principales operaciones son: ingreso, procesamiento, transmisin, almacenamiento y despliegue de datos digitales. Los sistemas anlogos representan las variables en forma continua, en el tiempo; los digitales en forma discreta. Los sistemas simblicos emplean letras o iconos como smbolos no numricos. Los sistemas anlogos estn siendo reemplazados por sistemas digitales, para esto las cantidades fsicas en forma anloga, por ejemplo: sonidos, imgenes, voltajes, distancias, deben ser convertidas a representaciones digitales mediante tcnicas de aproximacin, empleando dispositivos de conversin anlogo-digitales. Primero se toman muestras, luego se convierten las muestras en nmeros. I.2 Diseo clsico y actual. El permanente cambio que tiene el estudio de sistemas digitales se debe principalmente a tres factores: la continua evolucin de la tecnologa digital que en menor tamao coloca cada vez mayor nmero de componentes ms rpidas; el desarrollo de herramientas de ayuda al diseo digital (CAD) que permiten enfrentar tareas extremadamente complejas; y las nuevas metodologas de desarrollo de software que facilitan el desarrollo de aplicaciones complejas con interfases visuales, como las herramientas CAD y los lenguajes de descripcin de hardware (HDL). Las primeras metodologas de diseo digital, que podramos denominar clsicas, permiten comprender los principios de funcionamiento de los sistemas digitales bsicos, y pueden ser desarrolladas empleando papel y lpiz. Emplean los principios tericos del lgebra de Boole y algoritmos de minimizacin. Sin embargo los algoritmos son de tipo no polinomial, y no pueden ser aplicados a situaciones de mediana complejidad (redes con ms de 5 entradas), debido a su costo exponencial. Sin embargo, al ser posible enfrentar diseos digitales ms complejos, debido a la tecnologa, debieron desarrollarse nuevas heursticas para representar sistemas digitales, minimizarlos, y poder implementarlos en base a bloques lgicos determinados. En estos nuevos 2 Sistemas DigitalesProfesor Leopoldo Silva Bijit 19-01-2010 algoritmos, estn basadas las herramientas CAD. Su exposicin y estudio corresponde a disciplinas de programacin, estructuras de datos y algoritmos. Actualmente el diseo, la simulacin y la implementacin o sntesis de sistemas digitales se realizan mediante complejos y numerosos algoritmos incrustados dentro de las herramientas computacionales de apoyo al diseo. I.3 Conceptos bsicos en sistemas digitales. Comenzaremos nuestro estudio desarrollando un ej

En el caso de CMOS,VNH=1.4V yVNL= 1.4, lo que indica que la familia CMOS es ms inmune al ruido que la TTL.

(to synchronize = sincronizar, synchronization, synchronisation)

1. En forma general, sincronizar es hacer que coincidan en el tiempo dos o ms fenmenos.

En otras palabras, sincronizar se refiere a que dos o ms elementos, eventos u operaciones sean programadas para que ocurran en un momento predefinido de tiempo o lugar.

2. En ingeniera electrnica, en lgica digital y entransferencia de datos, la sincronizacin implica que el dispositivo utiliza unaseal de reloj.

3. Eninformtica, sincronizar hace referencia a la coordinacin de procesos que se ejecutan simultneamente para completar una tarea, con el fin de obtener un orden de ejecucin correcto y evitar as estados inesperados.

4. Sincronizar archivos o datos. La sincronizacin de archivos es utilizada para mantener la misma versin de archivos en mltiples dispositivos. Por ejemplo, sincronizar la libreta de direccin de un telfono con la libreta de direcciones de una computadora. Para ms informacin ver:Sincronizar archivosySincronizar datos.

5. El trmino sincronizar es tambin utilizado para referirse a la transferencia de contenido de una computadora hacia un reproductor de MP3, un celular o una memoria flash cualquiera.

6. En multimedia, sincronizar es hacer concordar la imagen de video y el audio de una pelcula. La sincronizacin es muy importante en la telefona digital y en elstreamingde audio y video.

7. En fotografa, la sincronizacin del flash y la captura de la imagen es muy importante.TRANSFERENCIA DE DATOS1. En electrnica, razn entre dos variables cualesquiera en un circuito, generalmente la de entrada y la de salida del mismo.2. Transferencia de datos o informacin. Envo y/o recepcin de datos a travs de algn medio en unaredo a travs de unpuerto.Para poder lograr una transferencia debe existir algn tipo deconexin(alambradaoinalmbrica) y un lenguaje en comn (protocolo) entre losdispositivosque se conectan. Las transferencias tienen unancho de banday unavelocidadque suele medirse enbps(enbits), o kb/s (enbytes) o similares.Algunos tipos de conexiones con cables pueden ser:* Cable trenzado (lnea de telfono).*Cable coaxial.*Fibra ptica.En tanto, algunos tipos de conexiones sin pueden ser:*Infrarrojo, luz, radio.* Microondas.* Satelital.La transferencia de datos puede hacerse en dos formas:*Digital.*Analgica.Algunas unidades para medir la velocidad de transferencia de datos son elbps(bits por segundo) y elbaudio.La transferencia de datos sobre un medio puede ser desubida, debajadao ambas a la vez.

En la transferencia de datos, muchas veces es necesaria una cierta seguridad sobre la informacin transferida. Para esto, los datos puedenencriptarse.

1.2.8 Conversiones de base numrica.

Tabla de referencia rpidaDecimalBinario

11

210

311

4100

5101

6110

7111

81000

91001

101010

2010100

3011110

40101000

50110010

1001100100

10001111101000

1000010011100010000

BinarioDecimal

11

102

113

1004

1015

1106

1117

10008

10019

1000016

10000032

100000064

10000000128

100000000256

1000000000512

100000000001024

1000000000002048

Tabla de referencia rapidaDecimalHexadecimal

11

22

33

44

55

66

77

88

99

10a

11b

12c

13d

14e

15f

1610

1711

1812

1913

2014

301e

4028

5032

10064

5001f4

10003e8

100002710

100000186a0

1000000f4240

HexadecimalDecimal

11

22

33

44

55

66

77

88

99

a10

b11

c12

d13

e14

f15

a0160

b0176

c0192

d0208

e0224

f0240

ff255

aaa2730

bbb3003

ccc3276

ddd3549

eee3822

fff4095

ffff65535

Tabla de referencia rapidaHexadecimalBinario

11

210

311

4100

5101

6110

7111

81000

91001

a1010

b1011

c1100

d1101

e1110

f1111

a010100000

b010110000

c011000000

d011010000

e011100000

f011110000

ff11111111

aaa101010101010

bbb101110111011

ccc110011001100

ddd110111011101

eee111011101110

fff111111111111

ffff1111111111111111

BinarioHexadecimal

11

102

113

1004

1015

1106

1117

10008

10019

1010a

1011b

1100c

1101d

1110e

1111f

1000000080

11111111ff

100000000100

1111111111ff

1000000000200

11111111113ff

10000000000400

100000000000800

10000000000001000

100000000000002000

1.2.9 Sistema octalElsistema numricoen base8se llamaoctaly utiliza los dgitos 0 a 7.Para convertir un nmero en base decimal a base octal se divide por 8 sucesivamente hasta llegar a cociente 0, y los restos de las divisiones en orden inverso indican el nmero en octal. Para pasar de base 8 a base decimal, solo hay que multiplicar cada cifra por 8 elevado a la posicin de la cifra, y sumar el resultado.Es ms fcil pasar de binario a octal, porque solo hay que agrupar de 3 en 3 los dgitos binarios, as, el nmero 74 (en decimal) es 1001010 (en binario), lo agruparamos como 1 / 001 / 010, despus obtenemos el nmero en decimal de cada uno de los nmeros en binario obtenidos: 1=1, 001=1 y 010=2. De modo que el nmero decimal 74 en octal es 112.En informtica a veces se utiliza la numeracin octal en vez de lahexadecimal. Tiene la ventaja de que no requiere utilizar otros smbolos diferentes de los dgitos. Sin embargo, para trabajar conbyteso conjuntos de ellos, asumiendo que un byte es unapalabrade 8bits, suele ser ms cmodo elsistema hexadecimal, por cuanto todo byte as definido es completamente representable por dosdgitos hexadecimales.

DecimalBinarioHexadecimaloctal

00000000

10000111

20001022

30001133

40010044

50010155

60011066

70011177

801000810

901001911

1001010A12

1101011B13

1201100C14

1301101D15

1401110E16

1501111F17

16100001020

17100011121

18100101222

19100111323

20101001424

21101011525

22101101626

23101111727

30111101E36

31111111F37

321000002040

331000012141

Sistemas De Numeracin Octal Y Hexadecimal

1. SISTEMAS DE NUMERACIN OCTAL Y HEXADECIMAL Jess Miguel Prez Fernndez 2. SISTEMA OCTAL 3. SISTEMA OCTAL El sistema numrico octal utiliza como base el 8 que corresponde al numero de dgitos que se utilizan para representar cantidades. Estos dgitos son 0, 1, 2, 3, 4, 5, 6, 7. Al igual que los sistemas de numeracin decimal y binario, este es un sistema posicional, por lo cual en el sistema octal todos los procedimientos son similares a los que utilizamos con el sistema binario. El valor de posicin en este sistema se consigue multiplicando el digito por una potencia de 8. 4. SISTEMA OCTAL 5. Tabla de conversin entre decimal, binario, hexadecimal y octal Decimal Binario Hexadecimal octal 0 00000 0 0 1 00001 1 1 2 00010 2 2 3 00011 3 3 4 00100 4 4 5 00101 5 5 6 00110 6 6 7 00111 7 7 8 01000 8 10 9 01001 9 11 10 01010 A 12 11 01011 B 13 12 01100 C 14 13 01101 D 15 14 01110 E 16 15 01111 F 17 16 10000 10 20 17 10001 11 21 18 10010 12 22 ... ... ... ... 30 11110 1E 36 31 11111 1F 37 32 100000 20 40 33 100001 21 41 6. SISTEMA OCTAL La numeracin octal es tan buena como la binaria y la hexadecimal para operar con fracciones, puesto que el nico factor primo para sus bases es 2. Todas las fracciones que tengan un denominador distinto de una potencia de dos tendr un desarrollo octal peridico. Fraccin Octal Resultado en Octal 1/2 1/2 0,4 1/3 1/3 0,25252525 peridico 1/4 1/4 0,2 1/5 1/5 0,14631463 peridico 1/6 1/6 0,125252525 peridico 1/7 1/7 0,111111 peridico 1/8 1/10 0,1 1/9 1/11 0,07070707 peridico 1/10 1/12 0,063146314 peridico 7. CONVERSIN DE DECIMAL A OCTAL Convertir 245 10 245 / 8 = 30 y resta 5 (dgito mas prximo al punto octal) 30 / 8 = 3 y resta 6 (dgito a la izquierda del 5 obtenido arriba) No se puede seguir dividiendo, por lo que el 3 queda como dgito de mayor peso a la izquierda del 6 obtenido arriba. Resultado: 245 10 = 365 8 Convertir 175 10 175 / 8 = 21 y resta 7 (dgito mas prximo al punto octal) 21 / 8 = 2 y resta 5 (dgito a la izquierda del 7 obtenido arriba) No se puede seguir dividiendo, por lo que el 2 queda como dgito de mayor peso a la izquierda del 7 obtenido arriba. Resultado: 175 10 = 257 8 Convertir 0.432 10 0.432 x 8 = 3 .456 (dgito mas prximo al punto octal) 0.456 x 8 = 3 .648 (dgito a la derecha del 3 obtenido arriba) 0.648 x 8 = 5 .184 (dgito a la derecha del 3 obtenido arriba) 0.184 x 8 = 1 .472 (dgito a la derecha del 5 obtenido arriba) Resultado: 0.432 10 = 0.3351 8 8. SISTEMA HEXADECIMAL 9. SISTEMA HEXADECIMAL El sistema hexadecimal actual fue introducido en el mbito de la computacin por primera vez por IBM en 1963. Sistema numrico en base 16, esto significa que contiene 16 smbolos nicos para representar datos: los nmeros del 0 al 9 y las letras de la A a la F. Este sistema es til porque puede representar cada byte (8 bits ) con dos dgitos hexadecimales consecutivos. Esto permite a las personas leer nmeros hexadecimales ms fcilmente que los nmeros binarios . Como en cualquier sistema de numeracin posicional, el valor numrico de cada dgito es alterado dependiendo de su posicin en la cadena de dgitos, quedando multiplicado por una cierta potencia de la base del sistema. 10. SISTEMA HEXADECIMAL A partir del numero 9 se utilizan las letras A, B, C, D, E, F de esta manera: 11. SISTEMA HEXADECIMAL Como el nico factor primo de 16 es 2, todas las fracciones que no tengan una potencia de 2 en el denominador, tendrn un desarrollo hexadecimal peridico. 12. CONVERSIN DE HEXADECIMAL A DECIMAL Los nmeros hexadecimales son convertidos a su equivalente decimal multiplicando el peso de cada posicin por el equivalente decimal del dgito de cada posicin y sumando los productos. Entonces: 121 16 = 1 x 16 2 + 2 x 16 1 + 1 x 160 1 x 256 + 2 x 16 + 1 x 1 256 + 32 + 1 289 10 A1C 16 A x 16 2 + 1 x 16 1 + C x 160 10 x 256 + 1 x 16 + 12 x 1 2560 + 16 + 12 2588 10 13. CONVERSIN DE DECIMAL A HEXADECIMAL Se puede realizar empleando dos procesos: Divisiones sucesivas por 16, cuando el nmero es entero, o multiplicaciones sucesivas por 16, cuando el nmero es fraccionario. Siguiendo los mismos lineamientos empleados con los otros sistemas numricos. 650 10 650 / 16 = 40 y resta 10 = A (dgito mas prximo al punto hexadecimal) 40 / 16 = 2 y resta 8 (dgito a la izquierda del anterior) No se puede continuar dividiendo, por lo que el 2 queda como smbolo mas significativo a la izquierda del anterior. Resultado 650 10 = 28A 16 2588 10 2588 / 16 = 161 y resta 12 = C (dgito mas prximo al punto hexadecimal) 161 / 16 = 10 y resta 1 (Dgito siguiente a la izquierda del obtenido arriba) No se puede seguir dividiendo, por lo que el diez (la A ) queda como smbolo mas significativo a la izquierda del obtenido arriba Resultado 2588 10 = A1C 16 0.642 10 0.642 x 16 = 10 .272 (dgito mas prximo al punto hexadecimal) 10 10 = A 16 0.272 x 16 = 4 .352 (dgito siguiente a la derecha del anterior) 0.352 x 16 = 5 .632 (dgito siguiente a la derecha del anterior) 0.632 x 16 = 10 .112 (Dgito siguiente a la derecha del anterior) 10 10 = A 16 Resultado 0.642 10 = 0.A45A 16