BIENVENIDOS

"Es bueno ir a la lucha con determinación, abrazar a la vida con pasión, perder con clase y vencer con osadía, porque el mundo pertenece a quien se atreve, y la vida es mucho "para ser insignificante"

jueves, 25 de noviembre de 2010

Aritmetica del Computador

Sistemas de numeración
Decimal: 0,1,2,3,4,5,6,7,8,9
Binario: 0,1
Octal: 0,1,2,3,4,5,6,7
Hexadecimal: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F


Dec
Hex

Oct

Bin

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

000
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017

00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111


Dec

Hex

Oct

Bin

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F

020
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037

00010000
00010001
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
00011011
00011100
00011101
00011110
00011111


Dec

Hex

Oct

Bin

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F

040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057

00100000
00100001
00100010
00100011
00100100
00100101
00100110
00100111
00101000
00101001
00101010
00101011
00101100
00101101
00101110
00101111











Conversión de un número entero del sistema numérico decimal al sistema de binario.


Seguidamente realizaremos la operación inversa, es decir, convertir un número perteneciente al sistema numérico decimal (base 10) a un número binario (base 2). Utilizamos primero el mismo número 189 como dividendo y el 2, correspondiente a la base numérica binaria del número que queremos hallar, como divisor. A continuación el resultado o cociente obtenido de esa división (94 en este caso), lo dividimos de nuevo por 2 y así, continuaremos haciendo sucesivamente con cada cociente que obtengamos, hasta que ya sea imposible continuar dividiendo. Veamos el ejemplo:




Una vez terminada la operación, escribimos los números correspondientes a los residuos de cada división en orden inverso, o sea, haciéndolo de abajo hacia arriba. De esa forma obtendremos el número binario, cuyo valor equivale a 189, que en este caso será: 101111012 .

Conversión de Decimal a Hexadecimal
En la conversión de una magnitud decimal a hexadecimal se realizan divisiones sucesivas por 16 hasta obtener un cociente de cero. Los residuos forman el número hexadecimal equivalente, siendo el último residuo el dígito más significativo y el primero el menos significativo.
Ejemplo
Convertir el número 186910 a hexadecimal.
Figura 1.2.2. Ejemplo de Conversión de decimal a hexadecimal
El resultado en hexadecimal de 186910 es 74D16.
Conversión de Decimal a Octal
En la conversión de una magnitud decimal a octal se realizan divisiones sucesivas por 8 hasta obtener la parte entera del cociente igual a cero. Los residuos forman el número octal equivalente, siendo el último residuo el dígito más significativo y el primero el menos significativo.
Ejemplo
Convertir el número 46510 a octal.


Número N N ÷ 8 Parte decimal Parte decimal x 8 Peso
465 58,125 0,125 1 LSB
58 7,25 0,25 2
0,5 0,875 0,875 7 MSB

El resultado en octal de 46510 es 721.


Conversión de Binario a Decimal
Un número binario se convierte a decimal formando la suma de las potencias de base 2 de los coeficientes cuyo valor sea 1 (ver lección 1).
Ejemplo
Convertir el número 11002 a decimal.
11002 = 1x23 + 1x22 = 1210

Conversión de Binario a Hexadecimal
El método consiste en conformar grupos de 4 bits hacia la izquierda y hacia la derecha del punto que indica las fracciones, hasta cubrir la totalidad del número binario. Enseguida se convierte cada grupo de número binario de 4 bits a su equivalente hexadecimal.
Ejemplo
Convertir el número 10011101010 a hexadecimal.

Conversión de Binario a Octal
El método consiste en hacer grupos de 3 bits hacia la izquierda y hacia la derecha del punto que indica las fracciones, hasta cubrir la totalidad del número binario. Enseguida se convierte cada grupo de número binario de 3 bits a su equivalente octal.
Ejemplo
Convertir el número 010101012 a octal.

Conversión de Hexadecimal a Decimal
En el sistema hexadecimal, cada dígito tiene asociado un peso equivalente a una potencia de 16, entonces se multiplica el valor decimal del dígito correspondiente por el respectivo peso y realizar la suma de los productos.
Ejemplo
Convertir el número 31F16 a decimal.
31F16 = 3x162 + 1x16 + 15 x 160 = 3x256 + 16 + 15 = 768 + 31 = 79910

Conversión de Hexadecimal a Binario
La conversión de hexadecimal a binario se facilita porque cada dígito hexadecimal se convierte directamente en 4 dígitos binarios equivalentes.
Ejemplo
Convertir el número 1F0C16 a binario.
1F0C16 = 11111000011002

Conversión de Octal a Decimal
La conversión de un número octal a decimal se obtiene multiplicando cada dígito por su peso y sumando los productos:
Ejemplo
Convertir 47808 a decimal.
4780 = (4 x 83)+(3x82)+(8x81)+(0x80) = 2048+192+64+0= 2304

Conversión de Octal a Binario
La conversión de octal a binario se facilita porque cada dígito octal se convierte directamente en 3 dígitos binarios equivalentes.
Ejemplo
Convertir el número 7158 a binario.
7158 = (111001101)2

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

No hay comentarios:

Publicar un comentario