You are on page 1of 12

SISTEMA DE NUMERACIÓN BINARIA El sistema binario, en ciencias e informática, es un sistema de numeración en el que los números se representan utilizando solamente

las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).

El valor numérico representado en cada caso depende del valor asignado a cada símbolo. En una computadora, los valores numéricos pueden representar dos voltajes diferentes; también pueden indicar polaridades magnéticas sobre un disco magnético. Un "positivo", "sí", o "sobre el estado" no es necesariamente el equivalente al valor numérico de uno; esto depende de la nomenclatura usada. De acuerdo con la representación más habitual, que es usando números árabes, los números binarios comúnmente son escritos usando los símbolos 0 y 1. Los números binarios se escriben a menudo con subíndices, prefijos o sufijos para indicar su base. Las notaciones siguientes son equivalentes: ● 100101 binario (declaración explícita 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 subíndice que indica base 2 (binaria) notación) ● %100101 (un prefijo que indica formato binario) ● 0b100101 (un prefijo que indica formato binario, común en lenguajes de programación)

Conversión entre números decimales y binarios Convertir un número decimal al sistema binario es muy sencillo: basta con realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos. Por ejemplo, para convertir al sistema binario el número 7710 haremos una serie de divisiones que arrojarán los restos siguientes: 77 : 2 = 38 Resto: 1 38 : 2 = 19 Resto: 0 19 : 2 = 9 Resto: 1 9 : 2 = 4 Resto: 1 4 : 2 = 2 Resto: 0 2 : 2 = 1 Resto: 0 1 : 2 = 0 Resto: 1 y, tomando los restos en orden inverso obtenemos la cifra binaria: 7710 = 1001101 En sistema binario, 131 se escribe 10000011

Ejemplo Transformar el número decimal 100 en binario.

Otra forma de conversión consiste en un método parecido a la factorización en números primos. Es relativamente fácil dividir cualquier número entre 2. Este método consiste también en divisiones sucesivas. Dependiendo de si el número 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. Después sólo 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 dígitos de abajo a arriba. Ejemplo: 100|0 50|0 25|1 --> 1, 25-1=24 y seguimos dividiendo entre 2 12|0 6|0 3|1 1|1 -->

Existe un último método denominado de distribución. Consiste en distribuir los unos necesarios entre las potencias sucesivas de 2 de modo que su suma resulte ser el número decimal a convertir. Sea por ejemplo el número 151, para el que se necesitarán las 8 primeras potencias de 2, ya que la siguiente, 28=256, es superior al número a convertir. Se comienza poniendo un 1 en 128, por lo que aún faltarán 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= 21= 22= 23= 24= 25= 26= 27= 128|1

1|0 2|0 4|0 8|0 16|0 32|0 64|0

Decimal (con decimales) a binario Para transformar un número 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 número 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 entera del resultado). 3 Después de realizar cada multiplicación, se colocan los números obtenidos en el orden de su obtención. 4 Algunos números se transforman en dígitos periódicos, por ejemplo: el 0.1. Ejemplo 0,3125 (decimal) Proceso: 0,3125 · 0,625 · 0,25 · 0,5 · En orden: 0101 Ejemplo 0,1 Proceso: 0,1 0,2 0,4

=> 2 2 2 2 = = = = 1 -> 0,625 1,25 0,5

0,0101 =>

(binario).

0 => 1 => 0 => 1 0,0101 (binario)

(decimal) · · ·

=> 2 2 2

0,0 = = =

0011 0,2 0,4 0,8

0011

... ==> ==> ==>

(binario). 0 0 0

0,8 0,6 0,2 0,4 0,8 0,6 En

= 1,6 ==> 1 = 1,2 ==> 1 · 2 = 0,4 ==> <--se repiten las cuatro cifras, periódicamente · 2 = 0,8 ==> 0 <· 2 = 1,6 ==> 1 <· 2 = 1,2 ==> 1 <... orden: 0 0011 0011 ... => 0,0 0011 0011 ... (binario periódico)

· ·

2 2 0

Ejemplo 5.5 5,5 (decimal) Proceso: 5 0,5 · En orden: 1 (un

= => => = dígito 101,1

5,5 (binario). 101 1 (binario)

2 sólo

1 fraccionario)

->

=> 101,1

Ejemplo 6,83 (decimal) => 110,110101000111 Proceso: 6 => 0,83 · 2 = 1,66 => 0,66 · 2 = 1,32 => 0,32 · 2 = 0,64 => 0,64 · 2 = 1,28 => 0,28 · 2 = 0,56 => 0,56 · 2 = 1,12 => 0,12 · 2 = 0,24 => 0,24 · 2 = 0,48 => 0,48 · 2 = 0,96 => 0,96 · 2 = 1,92 => 0,92 · 2 = 1,84 => 0,84 · 2 = 1,68 => En orden: 110101000111 Parte entera: 110 Encadenando parte entera y fraccionaria: 110,110101000111 (binario)

(binario). 110 1 1 0 1 0 1 0 0 0 1 1 1 (binario) (binario)

Operaciones con números binarios Suma de números binarios La tabla de sumar para números binarios es la siguiente:

+ 0 1

0 0 1

1 1 10

Las posibles combinaciones al sumar dos bits son: ● 0+0=0 ● 0+1=1 ● 1+0=1 ● 1 + 1 = 10 Note que al sumar 1 + 1 es 102, es decir, llevamos 1 a la siguiente posición de la izquierda (acarreo). Esto es equivalente, en el sistema decimal a sumar 9 + 1, que da 10: cero en la posición que estamos sumando y un 1 de acarreo a la siguiente posición. Ejemplo 1 10011000 + 00010101 ——————————— 10101101 Se puede convertir la operación binaria en una operación decimal, resolver la decimal, y después transformar el resultado en un (número) 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 y llevamos 1 (este "1" se llama acarreo o arrastre). A continuación se suma el acarreo a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas la columnas (exactamente como en decimal). Resta de números binarios El algoritmo de la resta en sistema binario es el mismo que en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia. Las restas básicas 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 posición siguiente: 0 - 1 = 1 y me llevo 1, lo que equivale a decir en el sistema decimal, 2 - 1 = 1. Ejemplos 10001 11011001 -01010 -10101011

—————— 00111

————————— 00101110

En sistema decimal sería: 17 - 10 = 7 y 217 - 171 = 46. Para simplificar las restas y reducir la posibilidad de cometer errores hay varios métodos: ● Dividir los números largos en grupos. En el siguiente ejemplo, vemos cómo se divide una resta larga en tres restas cortas: 100110011101 1001 1001 1101 -010101110010 -0101 -0111 -0010 ————————————— = ————— ————— ————— 010000101011 0100 0010 1011 Utilizando el complemento a dos (C2). La resta de dos números binarios puede obtenerse sumando al minuendo el «complemento a dos» del sustraendo. Ejemplo La siguiente resta, 91 - 46 = 45, en binario es: 1011011 1011011 -0101110 el C2 de 0101110 es 1010010 +1010010 ———————— ———————— 0101101 10101101 En el resultado nos sobra un bit, que se desborda por la izquierda. Pero, como el número resultante no puede ser más largo que el minuendo, el bit sobrante se desprecia. Un último ejemplo: vamos a restar 219 - 23 = 196, directamente y utilizando el complemento a dos: 11011011 11011011 -00010111 el C2 de 00010111 es 11101001 +11101001 ————————— ————————— 11000100 111000100 Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto: 11000100 en binario, 196 en decimal. ● Utilizando el complemento a uno. La resta de dos números binarios puede obtenerse sumando al minuendo el complemento a uno del sustraendo y a su vez sumarle el bit que se desborda. ●

Producto de números binarios La tabla de multiplicar para números binarios es la siguiente: · 0 1 0 0 0 1 0 1

El algoritmo del producto en binario es igual que en números decimales; aunque se lleva a cabo con más sencillez, ya que el 0 multiplicado por cualquier número da 0, y el 1 es elelemento neutro del producto. Por ejemplo, multipliquemos 10110 por 1001: 10110 1001 ————————— 10110 00000 00000 10110 ————————— 11000110

En sistemas electrónicos, donde suelen usarse números mayores, se utiliza el método llamado algoritmo de Booth. 11101111 111011 __________ 11101111 11101111 00000000 11101111 11101111 11101111 ______________ 11011100010101

División de números binarios La división en binario es similar a la decimal; la única diferencia es que a la hora de hacer las restas, dentro de la división, éstas deben ser realizadas en binario. Ejemplo Dividir 100010010 (274) entre 1101 (13): 100010010 |1101 —————— -0000 010101 ——————— 10001 -1101 ——————— 01000

——————— 10000 ——————— 00111 ——————— 01110 ——————— 00001

0000

1101

0000

1101

Que Es Un Bit Bit es el acrónimo Binary digit (dígito binario). Un bit es un dígito del sistema de numeración binario. Mientras que en el sistema de numeración decimal se usan diez dígitos, en el binario se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1. Se puede imaginar un bit, como una bombilla que puede estar en uno de los siguientes dos estados:

apagada

o encendida

El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de "apagado" (0), y el otro al estado de "encendido" Byte Un byte es una unidad de información formada por una seguidilla de bits adyacentes. El diccionario de la Real Academia Española señala que byte es sinónimo de octeto (una unidad de información de ocho bits); sin embargo, el tamaño del byte (que proviene del inglés bite, “mordisco”) depende del código de caracteres en el que ha sido definido.

Es importante subrayar el hecho de que no existe una norma que haya establecido de manera oficial el símbolo que le corresponde al byte. Hasta el momento nos encontramos que se identifica de dos maneras fundamentalmente. Así, en los países de habla francesa se representa mediante una “o” mientras que en los anglosajones corresponde a la “B”. El término fue propuesto por Werner Buchholz hace más de cinco décadas, en medio del desarrollo de la computadora IBM 7030 Stretch. En un principio, byte se utilizaba para mencionar las instrucciones que constaban de 4 bits y que permitían la inclusión de entre 1 y 16 bits por byte. Sin embargo, el trabajo de diseño luego achicó el byte a campos de tres bits, lo que permitió entre 1 y 8 bits en un byte. Con el tiempo, se fijo el tamaño de un byte en 8 bits y se declaró como un estándar a partir de IBM S/360. La noción de 8 bits permite describir, en la arquitectura de los ordenadores o computadoras, las direcciones de memoria y otras unidades de datos que pueden abarcar hasta 8 bits de ancho. El concepto también permite hacer mención a la arquitectura de CPU y ALU que está basada en registros del mismo ancho. Se conoce como nibble, por otra parte, a la mitad de 1 byte de ocho bits. Así como el byte suele ser nombrado como octeto, por el mismo motivo el nibble puede mencionarse como semi octeto.

Kilobyte, Megabytes, Gigabyte, Terabyte........

El byte tiene diversos múltiplos, como kilobyte (1.000 bytes), megabyte (1.000.000 bytes), gibabyte (1.000.000.000 bytes) y terabyte (1.000.000.000.000 bytes), entre otros. Fundamental es el papel que ejerce el byte y el resto de equivalencias citadas dentro del ámbito de la informática pues se utilizan como medidas para referirse a la capacidad que tienen diversos dispositivos tales como, por ejemplo, lo que es la Memoria RAM, un cd, un dvd o un pen drive. Así, por ejemplo, sabemos que de manera habitual un cd suele tener una capacidad de almacenamiento de unos 700 Megabytes, un dvd suele superar el Gigabyte y los pen, por su parte, presentan actualmente una diversidad enorme de capacidad. De esta manera en el mercado informático nos encontramos con dispositivos de este tipo que tienen una capacidad de 4 gigabytes, de 8 gigabytes o de 16 gigabytes, entre otras. Una tendencia esta última que también es propia de las llamadas tarjetas de memoria o de los discos duros portátiles que actualmente cuentan con una gran variedad en cuanto a esa propiedad de almacenamiento. Así, por precios bastantes económicos e interesantes, en grandes almacenes dedicados al mundo de los ordenadores pueden llegar a encontrarse discos duros de los citados que llegan incluso a alcanzar 1 Terabyte.

CICLO DE UNA MÁQUINA COMPUTACIONAL CICLOS DE OPERACIÓN Hay dos operaciones fundamentales que realiza un procesador: 1- búsqueda de la instrucción: en la cual el procesador busca el código de operación(FETCH); 2- ejecución de la instrucción: en la cual el procesador ejecuta la operación determinada por la instrucción. Un procesador se encuentra siempre haciendo una de las dos operaciones anteriores. A continuación daremos una serie de definiciones: Ciclo de instrucción: es el tiempo total, medido en números de períodos de reloj, de duración de un ciclo de búsqueda más uno de ejecución de la instrucción teniendo en cuenta los sucesivos accesos a memoria en el caso de ser una instrucción de más de un byte. Ciclo de máquina: es el tiempo, medido en números de períodos de reloj de duración de una operación de lectura, de escritura o de búsqueda (Fetch) de una instrucción. Un ciclo de instrucción está compuesto por uno o varios ciclos de máquina (M1, M2, M3, M4), dependiendo del tipo de instrucción. Se denomina M1 al ciclo de búsqueda, pues siempre es el primero de cada ciclo de instrucción. Los ciclos de máquina más comunes son: Fetch, Memory Read, Memory Write, I/O Read, I/O Write, INA, etc. Estado de Reloj: es el período del reloj (clock) del microprocesador (T1, T2, T3, T4). Cada ciclo de máquina esta compuesto por un número entero de pulsos de reloj, pero no todos los ciclos de máquina tienen el mismo número de estados. El reloj determina los instantes de la secuencia del flujo de información y el temporizador de las líneas de control. Un estado o período de reloj es la unidad más pequeña de actividad, es decir que realiza la ejecución de una o más "micro-instrucciones". Debido a que un ciclo de máquina requiere 3 actividades básicas como son: - enviar direcciones al canal de direcciones, - preparar transferencias en el canal de datos, - realizar la transferencia propiamente dicha (es decir, copiar en un registro o en memoria), es que se requiere, al menos, de 3 períodos de reloj o estados para su desarrollo. Eventualmente, un cuarto o más ciclos adicionales son necesarios para el caso de un ciclo de máquina Fetch. La mayoría de los microprocesadores, al comienzo de cada ciclo de máquina (T1), envían señales de control que identifican qué tipo de ciclo de máquina será ejecutado.

En mC 8051 básico un ciclo máquina consiste en una secuencia de 6 estados numerados desde S1 hasta S6. Cada estado contiene 2 periodos de oscilación. Si el oscilador es de 12 MHz, cada periodo dura 1m s. Cada ciclo máquina contiene pues 12 periodos de oscilador, tal y como indica la siguiente figura. Un ciclo de máquina comienza en el periodo S1P1 y termina en el periodo S6P2.

Tiempos de la CPU La ejecución del ciclo máquina comienza en el estado 1 del ciclo máquina, cuando el código de operación es almacenado en el registro de instrucción. Como norma general una instrucción necesita uno o más ciclos máquina, dependiendo de: 1 Código de operación 2 Por ejemplo, la instrucción INC A (figura a) tiene 1 byte de instrucción y necesita 1 ciclo máquina, la instrucción INC DPTR, también, 1 byte de instrucción necesita 2 ciclos máquina (figura b) y la instrucción MUL AB, necesita 4 ciclos máquina y ocupa 1 byte de memoria. 3 El número de bytes Por ejemplo, la instrucción MOV A, #data (figura a) tiene 2 bytes de instrucción y necesita 1 ciclo máquina.En cambio la instrucción MOV direct,#data, consta de 3 bytes y necesita 2 ciclos máquina.

Tiempos de Lectura de la memoria de Programa El ciclo de lectura de la memoria de programa comienza en el estado S1 en el flanco de subida de la señal ALE. El flanco de bajada de la señal ALE se usa para latchear (almacenar) la parte baja de la dirección (PCL). Cuando la señal de lectura (PSEN'(1)) baja, el 8051 deja libre la parte baja del bus de direcciones para permitir el acceso del periférico y dar paso a la instrucción. Cuando la señal PSEN' sube el periférico deja libre el bus de datos para un nuevo acceso del 8051 e este. Representando esto en un diagrama de tiempos. Tiempos de lectura/escritura de la memoria de datos Para realizar una lectura de memoria de datos se necesitan 12 periodos de reloj. El ciclo comienza en estado S4 con la subida de la señal de ALE. El flanco de bajada de esta señal se usa para almacenar la parte baja del bus de direcciones. En el estado S6 el bus de datos se queda en alta impedancia luego se activa la señal RD' dando permiso al periférico para tomar el bus de datos. En estado S3 es leído el dato del periférico y cuando se desactiva la señal RD', el bus se queda de nuevo en alta impedancia para ser utilizado por el 8051. Para realizar una escritura en la memoria de datos externa se necesitan 12 periodos de reloj. El ciclo comienza en S4 con la subida de ALE. El flanco de bajada de esta señal se utiliza para almacenar la parte baja del bus de direcciones. En el estado S6 el 8051 saca el dato al bus,

luego se activa WR dando permiso al periférico para que pueda ser escrito el dato. En el estado S4 el 8051 desactiva la señal WR prohibiendo de esta manera que se escriba y dando comienzo a un nuevo ciclo. Ver siguiente diagrama de tiempos.