jueves, 14 de octubre de 2010

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

COLEGIO DE CIENCIAS Y HUMANIDADES

PLANTEL SUR

PEREZ PADILLA

GISELA AIDEE

LUIS ENRIQUE RODRIGEZ MALDONADO

CIBERNETICA Y COMPUTACION 1

"CIRCUITOS LOGICOS"

GRUPO: 568

OCTUBRE 2010

INDICE

INTRODUCCION

El vocabulario de la electrónica actual se manejas dos términos muy relacionados y que manejan técnicas distintas para resolver procesos electrónicos: analógicos y digital. La primera denominación se origina en el vocablo griego "ana - logos" y que puede traducirse como "relación exacta"; la segunda se basa en el vocablo del latín "digitus" y que se traduce como "dedo".
Un ejemplo practico destinado a graficar lo señalado procedentemente es el siguiente: un multimetro o tester es el un instrumento mayoritariamente utilizado en electrónica para medir parámetros eléctricos básicos y del cual existen dos versiones: el analógico que señala las magnitudes medidas mediante el desplazamiento de una aguja, y el digital, que entrega el resultado numéricamente atravez de un display. obviamente ambos son los mejores representantes que podemos señalar para establecer la diferencia entre ambas técnicas..

OPERACIONES BINARIAS ARITMÉTICAS: SUMA, RESTA, MULTIPLICACIÓN Y COMPLEMENTO

Empecemos por mencionar a los "Elementos discretos". Estos no son más que un grupo de símbolos con un significado. Por ejemplo: Números, letras, signos de puntuación, etc. Colocar elementos discretos uno al lado del otro representan información. De hecho, esta secuencia de elementos forman un "lenguaje" y que obviamente deben conocer para poder saber cuál es la información que contiene. Los primeros computadores se usaban para realizar cálculos numéricos y los elementos discretos usados eran los dígitos y es de aquí que surge el término computador digital.

En los sistemas digitales, los elementos discretos son representados por señales (en nuestro caso señales eléctricas) y en el caso particular de los sistemas digitales actuales las señales tienen sólo 2 posibles valores discretos y por esa razón se les conoce como binarios. 
Las señales representan dos estados que acorde a la lógica humana representan verdadero o falso.
COMENTARIO: Es probable que en un futuro estos sistemas digitales sean reemplazados por otros que usen "Fuzzy Logic" o "lógica difusa". A este tipo de sistemas, además de los dos valores verdadero y falso, se le añade otro estado que representaría un "quizá" o en el caso de que ese estado pueda contener varios valores un "es verdad pero sólo en cierto grado". Es en este tipo de lógica que muchos expertos consideran podría estar la verdadera esencia de la inteligencia artificial. No todo es blanco o negro ;-).

Señales analógicas


 Son señales que se representan de forma continua y no por elementos discretos como las señales digitales. Si queremos simular un proceso que es analógico en un sistema digital requeriremos de un "convertidor Analógico Digital". Éste se encargará de "transformar" los datos analógicos a una forma que sea representada por elementos discretos y así poder ser procesada por sistemas digitales. Un ejemplo de ello son los CD's de música. El sonido es una señal analógica. Esto quiere decir que la variación de la misma es de forma continua pero los CD's son un medio de almacenamiento digital. Es por ello que el sonido debe pasar por un proceso de conversión para poder ser usado en sistemas digitales. Y esto es sólo un ejemplo. Otro sería la luz, que es también una señal continua (o analógica). 
La cantidad de aplicaciones que pueden realizarse con los sistemas digitales actuales son muy variadas. Algunos ejemplos son: numéricas, procesamiento de texto, aplicaciones de diseño gráfico, estudios digitales de audio, etc. El "truco" es saber cómo expresar esa información en términos discretos y en nuestro caso específico “binarios” para que dichos sistemas digitales puedan procesarla, por lo que la necesidad de este tipo de sistemas en el mundo moderno es por demás evidente.

NÚMEROS BINARIOS


Como mencionamos anteriormente, los sistemas digitales actuales sólo procesan dos señales (cierto o falso) y es por ello que se aplica el término de binario. Nosotros estamos acostumbrados a usar los números en base decimal (o base 10) pero ésta es sólo una de las formas de representar cantidades. En realidad "2" es sólo un símbolo y cuando lo vemos nosotros entendemos que existen dos unidades de algo. Si yo les digo que tengo 2 computadoras ustedes no visualizan el símbolo 2 sino la cantidad... quizá representada por una computadora al lado de la otra, pero no el símbolo. Así que "2" es sólo eso: un símbolo. Lo que trato de hacerles entender es que no importa cómo lo expresemos, qué símbolo o símbolos usemos, lo importante es que entendamos ese "lenguaje" y saber qué es lo que representa. Usamos los símbolos como una abstracción para representar cantidades.
Pongamos que tenemos un número decimal tal como 123. Eso representa una centena más dos decenas más tres unidades. O sea:
1 x 102 + 2 x 101 + 3 x 100
o sea, 123 ;-). Por lo tanto podríamos decir que si tenemos un número decimal de forma
a4a3a2a1a0
entonces a4, a3, a2, a1 y a0 son los coeficientes en la siguiente ecuación:
a4 x 104 + a3 x 103 + a2 x 102 + a1 x 101 + a0 x 100
donde todos los coeficientes deben ser un número entre 0 y 9. En este caso en particular estamos usando lo que conocemos: la base 10 o sistema decimal; pero podemos ampliar este concepto a cualquier base. Por lo tanto podemos decir que todo número puede ser expresado en un sistema de base "b" por:
an.bn + an-1.bn-1 + ... + a2.b2 + a1.b1 + a0.b0
y en el caso que contenga decimales:
an.bn + an-1.bn-1 + ... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + ... + a-m.b-m
donde an es un valor que siempre estará entre 0 y (b-1) siendo “n” el número de dígitos enteros menos uno y “m” el número de dígitos en la fracción decimal. En un número binario la base es 2. Por lo tanto, un número binario sólo puede contener dígitos entre 0 y 1 (que en nuestro caso representarán los dos estados que asociamos con falso o cierto). A un solo dígito binario (elemento mínimo de un número binario) se le conoce como BIT. A la agrupación de 8 BITS se le conoce como BYTE.
Un ejemplo de un número binario es: 1010011. Si quisiéramos representar este número de 7 bits (donde b=2, n=6 y m =0) de una forma que nos fuese más familiar, es decir, en decimal, haríamos:
1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 64 + 0 + 16 + 0 + 0 + 2 + 1 = 83
por lo tanto, el número binario de 7 bits 1010011 es igual que el número decimal 83. Son dos formas distintas de expresar la misma cantidad. Y que lo haya convertido a decimal no quiere decir que la fórmula convierte el número a base decimal. En realidad Yo usé la base decimal para resolver porque es la forma natural en la que nosotros pensamos. Vi 26, y yo sé que representa una cantidad de sesenta y cuatro y la forma en la que Yo sé escribir esa cantidad es en decimal y representada por los símbolos 64. Si yo pensase en otra base, como veremos más adelante, vería otros símbolos pero al final representarían la misma cantidad.
Cuando trabajamos con números en distintas bases la forma de expresar en qué base está escrito un número es colocándole dentro de paréntesis e indicando al lado la base. Por ejemplo:
(1010011)2 = (83)10
quiere decir que el número 1010011 en base 2 es igual al número 83 en base 10.
Por supuesto los números binarios, o en base 2, son sólo un ejemplo. La base puede ser cualquiera. Supongamos ahora que les digo que tenemos: (1234,2)5 que es un número en base 5 con fracción decimal y que, como se observa, sólo usa dígitos del 0 al 4 que, como ya se ha mencionado, son las únicas posibilidades. Bien, luego les digo que lo conviertan a base 10. Sabiendo que en ese caso n=3, que m=1 y que la base b=5, entonces gracias a la fórmula que ya mostramos podremos decir que:
(1234,2)5 = 1 x 53 + 2 x 52 + 3 x 51 + 4 x 50 + 2 x 5-1 = 125 + 50 + 15 + 4 + 0,4 = (194,4)10
Perfecto. Por lo tanto ya sabemos entonces qué debemos hacer para convertir números que están en cualquier base “b” a, en nuestro caso, base 10.
Si el número que queremos mostrar está en una base menor o igual a diez pues podremos usar los dígitos conocidos por nosotros (del 0 al 9) como los "símbolos" a usar. Pero ¿qué pasa si el número está en una base mayor a 10? pues que deberemos usar otros símbolos. Lo normalmente usado son las letras del alfabeto (regularmente en mayúsculas) para expresar dichos números. Por ejemplo el sistema en base hexadecimal (ámpliamente usado) que está en base 16 usa los símbolos A, B, C, D, E y F para expresar las cantidades que conocemos en decimal como 10, 11, 12, 13, 14 y 15 respectivamente (los cuales son necesarios en la base 16 ya que recuerden que los coeficientes en cualquier base son números entre 0 y base-1). Por lo tanto:
(1F)16 = 1 x 161 + 15 x 160 = 16 + 15 = (31)10
y, más interesante aún:
(10)16 = 1 x 161 + 0 x 160 = 16 + 0 = (16)10
y es por eso comentaba que no importan los símbolos usados, lo importante es saber la cantidad que representan y para ello es necesario saber el "lenguaje" que se está hablando. Si yo escribo los símbolos 10... que ven ustedes? Pues lo que ven dependerá de su sistema base. Ustedes pueden decir que entienden una cantidad de diez. Yo digo que entiendo una cantidad de dieciséis. Si ustedes están trabajando en base 10 y yo en base 16, ambas cantidades son correctas.
Hace unos momentos cuando estábamos en el punto de convertir números según la formula dije: "Si yo pensase en otra base" . Que pasa si probamos el mismo ejemplo, pero esta vez “pensando” en hexadecimal. Tendríamos:
(1010011)2 = 1 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = (40)16 + 0 + (10)16 + 0 + 0 + (2 + 1)16 = (53)16
Ahora, cuando yo vi 26 vi la cantidad o el valor de sesenta y cuatro que es representada en hexadecimal por los símbolos 40, 24por 10, etc.

NÚMEROS HEXADECIMALES Y OCTALES



Como ya se comentó, los números hexadecimales son aquellos que están en base 16. En el caso de los octales tienen base 8. Estos números son muy usados en los sistemas digitales principalmente porque pueden representar los números binarios de una forma más compacta (debido a que 23 son 8 y 24 son 16). Realizar esa conversión es extremadamente sencillo. Veamos el siguiente ejemplo: (10100101)2 es un número binarios de 8 bits (o un byte). Este puede ser representado en dos partes de 4 bits (conocidas como NIBBLES). Si dividimos el byte del ejemplo en sus Nibbles, tendríamos: 1010 y 0101 cada una representando 24 posibilidades, o sea un número hexadecimal (un número entre 0 y 15). Así:
(1010)2 = (A)16 , (0101)2 = (5)16 => (10100101)2 = (A5)16.
El caso de octal es semejante. Si tenemos el número (101010111)2 podríamos dividir éste en tres partes de 3 bits (o sea, con 23posibilidades cada una) y tendríamos: 101, 010 y 111 que representan los números octales 5, 2 y 7 respectivamente. Por lo tanto:
(101010111)2 = (527)8
Y por supuesto que hacer lo contrario, o sea, convertir de octal o hexadecimal a binario, es igual de sencillo. Por ejemplo:
(7531)8 => 111 101 011 001 => (111101011001)2
(123,A)16 = 0001 0010 0011 , 1010 = (000100100011,1010)2
Pero existen otras conversiones que no son tan obvias como éstas. A continuación profundizaremos en ellas.

CONVERSIONES ENTRE NÚMEROS DE BASE DIFERENTE


La conversión entre números de distintas bases a un número decimal es, como ya vimos, bastante sencilla. Sólo debemos usar la fórmula que ya se describió. Pero ¿qué pasa si lo que queremos es convertir un número decimal a binario? ¿o a hexadecimal? ¿o a octal? Para realizar estas conversiones primero que nada, si el número tiene parte decimal, separamos la parte entera de la fracción decimal. La mejor forma de mostrar la conversión es a través de ejemplos. Veamos algunos:

Convertir a binario el número decimal 41: En el caso de querer convertir a números binarios lo que debemos hacer es realizar sucesivas divisiones del número a convertir entre dos hasta que lleguemos a un cociente de cero. Los restos de las divisiones representarán los dígitos desde el menos significativo (que será el primer resto) hasta el más significativo que será el resto de la última división cuando lleguemos al cociente cero. Entonces si el número es 41, al realizar la división entre dos obtendremos un cociente de 20 y un resto de 1. Es precisamente el resto quien indicará cuál es el valor del bit y en este caso este es el bit menos significativo. Luego haremos la operación nuevamente con el nuevo cociente que es el 20 y así sucesivamente hasta llegar al momento en que el cociente sea 0. Entonces, desde el principio:
  • 41 / 2 = 20 con resto 1 => El coeficiente el menos significativo será 1, digamos a0=1.
  • 20/2 = 10 con resto 0 => El coeficiente 1 será 0 => a1=0.
  • 10/2 = 5 con resto 0 => a2=0.
  • 5/2 = 2 con resto 1 => a3=1.
  • 2/2 = 1 con resto 0 => a4=0.
  • 1/2 = 0 con resto 1 => a5=1.
Por lo tanto:
(41)10 = (a5a4a3a2a1a0) = (101001)2
¿y si quisiéramos mostrar el número en octal y/ó hexadecimal, partiendo de que ya tenemos el número binario?, entonces sería:
(101001)2 = (51)8 = (29)16
Veamos otro ejemplo. Convertir el número decimal 161 a binario. Haríamos:
161804020105210
10000101

sabiendo que el primer bit es el menos significativo tendríamos:
(161)10 = (10100001)2
partiendo del binario, en octal y hexadecimal sería:
(10100001)2 = (A1)16 = (241)8
¿quieren revisar? OK:
(A1)16 = 10 x 161 + 1 x 160 = 160 + 1 = (161)10
(241)8 = 2 x 82 + 4 x 81 + 1 x 80 = 128 + 32 + 1 = (161)10
Ok, todo chévere. Pero ¿qué pasa si lo que quiero es convertir el número decimal directamente a octal o a hexadecimal? (quiero decir si NO tenemos el número binario). Por supuesto, ustedes podrían convertirlo a binario y luego a octal o hexadecimal. Soy de la política de que no importa cómo se llegue al resultado mientras éste sea el correcto a menos claro está de que se les digaexplícitamente que lo hagan de alguna forma en particular. En todo caso, la forma más rápida de hacerlo sería aplicando el método análogo a la conversión a binario sólo que cambiando el divisor a la base correspondiente. Si en binario es 2, en octal es 8, en hexadecimal es 16 en base 5 sería 5, etc. Procedamos con el mismo ejemplo anterior, con el número 161. Convirtámoslo a octal. Sería:
  • 161
  • 20 con resto 1
  • 2 con resto 4
  • 0 con resto 2
por lo tanto:
(161)10 = (241)8
ya que el primer resto es el dígito menos significativo. Y ¿qué tal a hexadecimal? Sería:
  • 161
  • 10 con resto 1
  • 0 con resto 10 que en hexadecimal es representado por A
entonces:
(161)10 = (A1)16
Ok. Si la base destino es 5, por ejemplo, llevarlo a binario no les serviría de nada. En este caso tendríamos que proceder obligatóriamente con el método explicado, en este caso siendo el divisor el número 5. Mismo ejemplo:
161
RESTO
32
1
6
2
1
1
0
1

Por lo tanto:
(161)10 = (1121)5
Revisemos:
(1121)5 = 1 x 53 + 1 x 52 + 2 x 51 + 1 x 50 = 125 + 25 + 10 + 1 = (161)10
CORRECTO!!! Veamos ahora el caso de que el número sea con decimales. Como ya se comentó, en estos casos es más conveniente separar la parte entera de la fracción decimal. La parte entera ya sabemos cómo resolverla. La fracción decimal se hace por un procedimiento similar pero la operación involucrada es la multiplicación y quien representará el dígito a colocar será la parte entera siendo el primer entero quien será la cifra más significativa. Por ejemplo si queremos convertir el número decimal 0,8125 a binario hacemos:
  • 0,8125 x 2 = 1 + 0,625
  • 0,625 x 2 = 1 + 0,25
  • 0,25 x 2 = 0 + 0,50
  • 0,50 x 2 = 1 + 0
así que
(0,812)10 = (0,1101)2
Revisemos:
(0,1101)2 = 1 x 2-1 + 1 x 2-2 + 0 x 2-3 + 1 x 2-4 = 0,5 + 0,25 + 0 + 0,0625 = (0,8125)10
Excelente!!! Veamos un último ejemplo. Convertir el número decimal 48,407407407407 (407 periódico) al correspondiente en base 3. Para la parte entera:
  • 48
  • 16 con resto 0
  • 5 con resto 1
  • 1 con resto 2
  • 0 con resto 1
y para la fracción decimal:
  • 0,407407407407 x 3 = 1 + 0,2222222 periódico
  • 0,222222222222 x 3 = 0 + 0,6666666 periódico
  • 0,666666666666 x 3 = 2 + 0
Por lo tanto
(48,407407407407...)10 = (1210,102)3
Revísenlo.
NOTA: Dada la confusión presentada por los números en distintas bases y viendo el resultado en algunos alumnos que dio dar ejemplos de series en distintas bases, aquí les anexo una tabla con números en decimal y su correspondiente en otras bases. Observen como varían los símbolos usados en las distintas bases en incrementos de uno.
DecimalHexadecimalOctalBase 3Base 7
00000
11111
22222
333103
444114
555125
666206
7772110
88102211
991110012
10A1210113
11B1310214
12C1411015
13D1511116
14E1611220
15F1712021
16102012122
17112112223
18122220024
301E36101042
311F37101143
322040101244
64401002101121
69451052120126
70461062121130
71471072122131
Si por ejemplo tienen el número (12)3 y se le pide que le sumen 2, el resultado que van a obtener es el número en base 3 que está 2 posiciones adelante del (12)3 , en este caso el (21)3. Espero que esta tabla les sirva para comprender mejor los números en bases distintas. (4 + 6)7 = (13)7. Teniendo ya esto en cuenta, veamos como se realizan operaciones aritméticas en distintas bases.