martes, 12 de octubre de 2010

ARQUITECTURA VON NEWMANN

La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard).
La mayoría de los ordenadores actuales siguen este tipo de arquitectura.


Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, unos dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.



Un ordenador con arquitectura Von Neumann realiza o emula los siguientes pasos secuencialmente:

1) Obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.

2) Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.

3) Descodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.

4) Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.

5) Vuelve al paso N° 1.


martes, 5 de octubre de 2010

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 ). 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 (y me llevo 1)
Ejemplos
10001                           11011001    
       -01010                          -10101011
       ——————                          —————————
        00111                           00101110
En sistema decimal sería: 17 - 10 = 7 y 217 - 171 = 46

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 el elemento neutro del producto.
Por ejemplo, multipliquemos 10110 por 1001:
10110       
         1001                    
    —————————          
        10110               
       00000                
      00000                
     10110                
    —————————           
     11000110


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
 - 0000
 ———————
   10000
  - 1101
  ———————
    00011
   - 0000
   ———————
     01110
    - 1101
    ———————
     00001

jueves, 30 de septiembre de 2010

SISTEMAS DE CODIFICACIÓN DE LA INFORMACIÓN

EL CÓDIGO BINARIO

El sistema binario , en matemáticas 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, pues trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).

CONVERSIÓN DECIMAL-BINARIO
Ejemplo
Transformar el número decimal 100 en binario.
Conversion.JPG


 CONVERSIÓN BINARIO-DECIMAL

El proceso para convertir un número del sistema binario al decimal es aún más sencillo; basta con desarrollar el número, teniendo en cuenta el valor de cada dígito en su posición, que es el de una potencia de 2, cuyo exponente es 0 en el bit situado más a la derecha, y se incrementa en una unidad según vamos avanzando posiciones hacia la izquierda.
Por ejemplo, para convertir el número binario 10100112 a decimal, lo desarrollamos teniendo en cuenta el valor de cada bit:

1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 83

10100112 = 8310
EL CÓGIDO OCTAL.

El inconveniente de la codificación binaria es que la representación de algunos números resulta muy larga. Por este motivo se utilizan otros sistemas de numeración que resulten más cómodos de escribir: el sistema octal y el sistema hexadecimal. Afortunadamente, resulta muy fácil convertir un número binario a octal o a hexadecimal.
En el sistema de numeración octal, los números se representan mediante ocho dígitos diferentes: 0, 1, 2, 3, 4, 5, 6 y 7. Cada dígito tiene, naturalmente, un valor distinto dependiendo del lu­gar que ocupen. El valor de cada una de las posiciones viene determinado por las potencias de base 8.
Por ejemplo, el número octal 2738 tiene un valor que se calcula así:

2*83 + 7*82 + 3*81 = 2*512 + 7*64 + 3*8 = 149610

2738
= 149610

onversión de un número decimal a octal

La conversión de un número decimal a octal se hace con la misma técnica que ya hemos utilizado en la conversión a binario, mediante divisiones sucesivas por 8 y colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal 12210 tendremos que hacer las siguientes divisiones:

122 : 8 = 15     Resto: 2
15 : 8 = 1           Resto: 7
1 : 8 = 0               Resto: 1
Tomando los restos obtenidos en orden inverso tendremos la cifra octal:

12210 = 1728

Conversión octal a decimal

La conversión de un número octal a decimal es igualmente sencilla, conociendo el peso de cada posición en una cifra octal. Por ejemplo, para convertir el número 2378 a decimal basta con desarrollar el valor de cada dígito:

2*82 + 3*81 + 7*80 = 128 + 24 + 7 = 15910

2378 = 15910

Sistema de numeración hexadecimal

En el sistema hexadecimal los números se representan con dieciséis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F representando las cantidades decima­les 10, 11, 12, 13, 14 y 15 respectivamente, porque no hay dígitos mayores que 9 en el sistema decimal. El valor de cada uno de estos símbolos depende, como es lógico, de su posición, que se calcula mediante potencias de base 16.
Calculemos, a modo de ejemplo, el valor del número hexadecimal 1A3F16:

1A3F16 = 1*163 + A*162 + 3*161 + F*160
 
1*4096 + 10*256 + 3*16 + 15*1 = 6719

1A3F16 = 671910
 CONVERSIÓN DECIMAL-HEXADECIMAL

para convertir a hexadecimal del número 173510 será necesario hacer las siguientes divisiones:


1735 : 16 = 108    Resto: 7
108 : 16 = 6           Resto: C es decir, 1210
6 : 16 = 0                Resto: 6

De ahí que, tomando los restos en orden inverso, resolvemos el número en hexadecimal:

173510 = 6C716

CONVERSIÓN HEXADECIMAL-DECIMAL
1A3F16 = 1*163 + A*162 + 3*161 + F*160
 
1*4096 + 10*256 + 3*16 + 15*1 = 6719

1A3F16 = 671910

TABLA DE CONVERSIÓN DE LOS PRIMEROS 16 NÚMEROS:
DECIMAL
BINARIO
HEXADECIMAL
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
A

CONVERSOR DE SISTEMA DE NUMERACIÓN , ONLINE: 

http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html