Sei sulla pagina 1di 52

4

Operaciones
sobre los datos

Fundamentos de Ciencias de la Computación • Aprendizaje Cengage


4.1
objetivos
Después de estudiar este capítulo, el estudiante debe ser capaz de:

• Enumerar las tres categorías de operaciones realizadas en los datos.

• Realizar operaciones lógicas unarios y binarios en los patrones de bits.

• Distinguir entre operaciones de desplazamiento de lógica y operaciones de


desplazamiento aritmético.

• Realizar sumas y restas de números enteros cuando se almacenan en dos ' s


formato de complemento.

❑ Realizar sumas y restas de números enteros cuando se almacena en signo - y - formato


de magnitud.

❑ Realizar operaciones de suma y resta de números reales almacenados en


la flotación - formato de coma.

4.2
4

operaciones lógicas se refieren a aquellas operaciones que se aplican la misma


operación básica sobre bits individuales de un patrón, o en dos bits
correspondientes en dos patrones.

Esto significa que podemos definir las operaciones lógicas en el


nivel de bit y en el nivel patrón (más bits) .

4.3
operaciones lógicas a nivel de bits

Un bit puede tomar uno de los dos valores: 0 o 1.


0 como el valor falso y 1 como el valor cierto .

álgebra de Boole , nombrado en honor de George Boole, pertenece a un campo especial


de las matemáticas llamada lógica.

En esta sección, se muestra brevemente cuatro las operaciones a nivel de bits que se
utilizan para manipular los bits: NO , Y , O , y XOR .

yo

circuitos de álgebra y lógica booleana se discuten en


Apéndice E.
4.4
Figura 4.1 operaciones lógicas a nivel de bits
4.5
NO
El operador NOT es un operador unitario: sólo se necesita una entrada. El bit de
salida es la complemento de la entrada.

Y
El operador AND es un operador binario: se necesitan dos entradas. El bit de
salida es 1 si ambas entradas son 1s y la salida es 0 en los otros tres casos.

yo

por x = 0 o 1 XY0→0 0YX→0

4.6
O
El operador OR es un operador binario: se toma dos entradas. El bit de salida
es 0 si ambas entradas son 0s y la salida es 1 en otros tres casos.

yo

por x = 0 o 1 X OR 1 → 1 1 OR X → 1

XOR
El operador XOR es un operador binario como el operador OR, con sólo una
diferencia: la salida es 0 si ambas entradas son 1s.

yo

por x = 0 o 1
1 XOR X → NO X X 1 XOR → NO X
4.7
Ejemplo 4.1

En Inglés se utiliza la conjunción “ o ” a veces para referirse a un inclusiva - o, a


veces, a los medios una exclusiva - o.

a. La frase “ Me gustaría tener un coche o una casa ” usos “ o ” en el inclusivo sentido


- Me gustaría tener un coche, una casa o ambos.

segundo. La frase “ Hoy en día es el lunes o el martes ” usos “ o ” en el exclusivo sentido


- hoy en día es el lunes o el martes, pero no puede ser ambas cosas.

4.8
Ejemplo 4.2

El operador XOR no es en realidad un nuevo operador. Siempre podemos simularlo


usando los otros tres operadores. Los siguientes dos expresiones son equivalentes

X XOR y ↔ [ X Y NO y)] O NO X) Y y]

La equivalencia se puede probar si hacemos la tabla de verdad para ambos.

4.9
operaciones lógicas a nivel de patrón

Las mismas cuatro operadores (NOT, AND, OR y XOR) se pueden aplicar a un


patrón de n bits.

La figura 4.2 muestra estos cuatro operadores con patrones de entrada y de salida.

Figura 4.2 operadores lógicos aplicados a patrones de bits


4.10
Ejemplo 4.3

Utilizar el operador NOT en el patrón de bits 10011000.

Solución
La solución se muestra a continuación. Tenga en cuenta que el operador no cambia
cada 0 a 1 y cada 1 a 0.

4.11
Ejemplo 4.4
Utilice el operador AND en los patrones de bits 10011000 y
00101010.

Solución
La solución se muestra a continuación. Tenga en cuenta que sólo un bit en la salida es 1, donde
ambas entradas correspondientes son 1s.

4.12
Ejemplo 4.5

Utilice el operador o los patrones de bits 10011001 y 00101110.

Solución
La solución se muestra a continuación. Tenga en cuenta que sólo un bit en la salida es 0, donde
ambas entradas correspondientes son 0s.

4.13
Ejemplo 4.6
Utilice el operador XOR sobre los patrones de bits 10011001 y
00101110.

Solución
La solución se muestra a continuación. Comparar la salida en este ejemplo con el uno en
el Ejemplo 4.5. La única diferencia es que cuando las dos entradas son 1s, el resultado es
0 (el efecto de exclusión).

4.14
aplicaciones

Las cuatro operaciones lógicas se pueden utilizar para modificar un patrón de bits.

• Como complemento (NO)

• La desconexión (Y)

• Marco (OR)

• Flipping (XOR)

4.15
Ejemplo 4.7

Utilizar una máscara para unset ( claro) los cinco bits más a la izquierda de un patrón. Prueba de la
máscara con el patrón 10100110.

Solución
La máscara es 00000111. El resultado de aplicar la máscara es:

4.16
Ejemplo 4.8

Utilizar una máscara para conjunto los cinco bits más a la izquierda de un patrón. Prueba de la
máscara con el patrón 10100110.

Solución
La máscara es 11111000. El resultado de aplicar la máscara es:

4.17
Ejemplo 4.9

Utilizar una máscara para dar la vuelta los cinco bits más a la izquierda de un patrón. Prueba de la
máscara con el patrón 10100110.

Solución
La máscara es 11111000. El resultado de aplicar la máscara es:

4.18
4-2 OPERACIONES DE CAMBIO

Las operaciones de desplazamiento mover los bits en un patrón, el cambio de las

posiciones de los bits.

Se pueden mover bits a la izquierda oa la derecha. Podemos dividir las


operaciones de cambio en dos categorías:
1. Las operaciones de desplazamiento lógico

2. Las operaciones de desplazamiento aritmético

4.19
operaciones de desplazamiento lógicos

Una operación de desplazamiento lógico se aplica a un patrón que no representa una fir
número. La razón es que estas operaciones de cambio pueden cambiar el signo del
número que se define por el bit más a la izquierda en el patrón.

Se distinguen dos tipos de operaciones de desplazamiento lógicos, como se describe a

continuación:

• desplazamiento lógico

• Logical desplazamiento circular (Rotar)

4.20
Figura 4.3 operaciones de desplazamiento lógicos

4.21
Ejemplo 4.10

Utilice una operación de desplazamiento a la izquierda lógica en el patrón de bits 10011000.

Solución
La solución se muestra a continuación. El bit más a la izquierda se pierde y una 0 se inserta como el
bit más a la derecha .

Descartado

Adicional

4.22
Figura 4.4 las operaciones de desplazamiento circular

4.23
Ejemplo 4.11

Utilice una operación de desplazamiento a la izquierda circular en el patrón de bits 10011000.

Solución
La solución se muestra a continuación. El bit más a la izquierda se hace circular y se convierte en el
bit más a la derecha.

4.24
las operaciones de desplazamiento aritmético

Las operaciones de desplazamiento aritmético asumen que el patrón de bits es un entero con

signo en dos ' s formato de complemento.

Aritmética Correcto desplazamiento se utiliza para dividir un número entero de dos, mientras que

la aritmética izquierda desplazamiento se utiliza para multiplicar un número entero por dos.

Figura 4.5 las operaciones de desplazamiento aritmético

4.25
Ejemplo 4.12

Utilice una operación aritmética desplazamiento a la derecha en el patrón de bits


10011001. El patrón es un entero en dos ' s formato de complemento.

Solución
La solución se muestra a continuación. El bit más a la izquierda se conserva y también copió a su
derecho bits vecino.

El número original - 103 y el nuevo número es - 52, que es el resultado de dividir - 103
por 2 truncado para el número entero más pequeño.

4.26
Ejemplo 4.13

Utilice una operación de desplazamiento aritmético a la izquierda en el patrón de bits 11011001. El


patrón es un entero en dos ' s formato de complemento.

Solución
La solución se muestra a continuación. El bit más a la izquierda se pierde y un 0 se inserta como el

bit más a la derecha .

El número original - 39 y el nuevo número es - 78. El número original se multiplica


por dos. La operación es válida porque se ha producido ningún desbordamiento.

4.27
Ejemplo 4.14

Utilice una operación de desplazamiento aritmético a la izquierda en el patrón de bits 01111111. El


patrón es un entero en dos ' s formato de complemento.

Solución
La solución se muestra a continuación. El bit más a la izquierda se pierde y un 0 se inserta como el
bit más a la derecha.

El número original era 127 y el nuevo número es - 2. A continuación, el resultado no es válida


debido a que una se ha producido desbordamiento . La respuesta esperada 127 × 2 = 254 no
se puede representar por un patrón de 8 bits.

4.28
Ejemplo 4.15

Supongamos que tenemos un patrón y tenemos que utilizar el tercer bit (desde la derecha)
de este patrón en un proceso de toma de decisiones. Queremos saber si este fragmento es
0 o 1. A continuación se muestra cómo podemos averiguarlo.

Podemos entonces probar el resultado: si es un entero sin signo 1, el bit blanco era 1,
mientras que si el resultado es un entero sin signo 0, el bit objetivo era 0.

4.29
4

Las operaciones aritméticas implican:

1. añadiendo

2. restar
3. multiplicador
4. divisoria

Podemos aplicar estas operaciones de números enteros y de coma


flotante.

4.30
Las operaciones aritméticas con enteros

Existen procedimientos más eficientes para la multiplicación y división, como Cabin


procedimientos , pero estos son más allá del alcance de este libro .

Por esta razón, solamente discutir la suma y resta de enteros aquí.

4.31
Dos ' s enteros del complemento

Cuando se encuentra la operación de resta, el ordenador simplemente


cambia a una operación de suma, pero hace dos ' s complemento de la
segunda serie.

En otras palabras:

UNA - B ↔ A + (B + 1)

Donde B es el ' complemento s de B y

(B + 1) significa que los dos ' complemento de B s

4.32
Debemos recordar que añadimos enteros columna por columna. La
siguiente tabla muestra la suma y acarreo (C).

4.33
Figura 4.6 Suma y resta de números enteros en dos ' formato de complemento s

4.34
Ejemplo 4.16
Dos enteros A y B se almacenan en dos ' s formato de complemento. Mostrar cómo se
añade B a A.

A = (00010001) 2 B = (00010110) 2

Solución
La operación está añadiendo. A se añade a B y el resultado se almacena en
R. (17) + (22) = (39).

4.35
Ejemplo 4.17
Dos enteros A y B se almacenan en dos ' s formato de complemento. Mostrar cómo se
añade B a A.

A = (00011000) 2 B = (11101111) 2

Solución
La operación está añadiendo. A se añade a B y el resultado se almacena en
R. (24) + ( - 17) = (7).

4.36
Ejemplo 4.18
Dos enteros A y B se almacenan en dos ' s formato de complemento. Mostrar cómo se
resta B desde la A.

A = (00011000) 2 B = (11101111) 2

Solución
La operación se resta. A se añade a (B + 1) y el resultado se almacena en R.
(24) - ( - 17) = (41).

4.37
Ejemplo 4.19
Dos enteros A y B se almacenan en dos ' s formato de complemento. Mostrar cómo se
resta B desde la A.

A = (11011101) 2 B = (00010100) 2

Solución
La operación se resta. A se añade a (B + 1) y el resultado se almacena en R. ( - 35)
- (+ 20) = ( - 55).

4.38
Ejemplo 4.20
Dos enteros A y B se almacenan en dos ' s formato de complemento. Mostrar cómo se
añade B a A.

A = (01111111) 2 B = (00000011) 2

Solución
La operación está añadiendo. A se añade a B y el resultado se almacena en
R.

Esperamos que el resultado sea 127 + 3 = 130, pero la respuesta es - 126. El error es
debido a rebosar , Porque la respuesta esperada (130) no está en el rango - 128-127.

4.39
yo

Cuando hacemos las operaciones aritméticas con números en un


ordenador, hay que recordar que cada número y el resultado debe
estar en el rango definido por
la asignación de bits.

4.40
firma y magnitud enteros
La suma y resta de números enteros en la representación de firma y magnitud
se ve muy compleja.

Tenemos cuatro combinación diferente de señales (dos señales, cada uno de los dos
valores) para la adición y cuatro condiciones diferentes para la resta. Esto significa que
debemos tener en cuenta ocho situaciones diferentes. Sin embargo, si primero
comprobamos los signos, podemos reducir estos casos, como se muestra en la Figura
4.7.

4.41
Figura 4.7 Suma y resta de números enteros en formato de firma y magnitud
4.42
Ejemplo 4.22
Dos enteros A y B se almacenan en formato de firma y magnitud. Mostrar cómo B es adicional
a A.

A = (0 0010001) 2 B = (1 0010110) 2
Solución
La operación es la adición: el signo de B no se cambia. S = A S
XOR B S = 1 ; R M = UNA METRO + ( segundo METRO + 1). Puesto que no hay desbordamiento, tenemos que
tener los dos ' s complemento de R METRO. El signo de R es el signo de B. (17) + ( - 22) = ( - 5).

4.43
Ejemplo 4.23
Dos enteros A y B se almacenan en formato de firma y magnitud. Mostrar cómo B es restada
a partir de una.

A = (1 1010001) 2 B = (1 0010110) 2

Solución
La operación se restando: S B = S SEGUNDO. S = A S XOR B S = 1 , R M =
UNA METRO + ( segundo METRO + 1). Dado que no hay un desbordamiento, el valor de R METRO es definitiva. El

signo de R es el signo de A. ( - 81) - ( - 22) = ( - 59).

4.44
Suma y resta de números reales

Suma y resta de números reales almacenados en Números de punto flotante se reduce


a la suma y la resta de dos números enteros almacenados en el inicio de sesión y de
magnitud (combinación de signo y mantisa) después de la alineación de puntos
decimales.

Figura 4.8 muestra una versión simplificada del procedimiento ( hay algunos casos
especiales que hemos ignorado ).

4.46
Figura 4.8 Suma y resta de números reales en formato de punto flotante
4.47
Ejemplo 4.24
Muestran cómo el ordenador encuentra el resultado de (5.75) + (161.875) = (167,625).

Solución
Como vimos en el capítulo 3, estos dos números se almacenan en formato de punto flotante, como
se muestra a continuación, pero tenemos que recordar que cada número tiene un oculto 1 (que no
se guarda, pero se supone).

4.48
Ejemplo 4.24 ( Continuado)

no se necesitan los primeros pasos en el diagrama de UML (Figura 4.8). Hemos de


considerarse algo normal por los números la adición de los 1s ocultos a la mantisa y incrementand
el exponente . Ahora los dos mantisas normalizadas de- son 24 bits e incluyen los 1s
ocultos. Deben ser almacenados en un lugar que puede contener todos los 24 bits. Cada
exponente se incrementa.

4.49
Ejemplo 4.24 ( Continuado)

Ahora vamos a hacer de firma y magnitud Además, el tratamiento de la señal y la mantisa de


cada número como un entero almacenado en la representación de magnitud signo aftosa.

No hay desbordamiento en la mantisa, por lo que a normalizar.

La mantisa es de sólo 23 bits, no se necesita ningún redondeo. E = (10000110) 2 = 134


M = 0100111101. En otras palabras, el resultado es (1,0100111101) 2 × 2 134 - 127 = ( 10100111.1
2= 167.625 .

4.50
Ejemplo 4.25
Muestran cómo el ordenador encuentra el resultado de (5.75) + ( - 7.0234375) = - 1,2734

Solución
Estos dos números se pueden almacenar en formato de punto flotante, como se muestra a
continuación:

Resultados de

4.51
Ejemplo 4.25 ( No es necesaria continuación) Alineación ( ambos exponentes son los

mismos ), Por lo que aplicamos operación de suma de las combinaciones de signo y

mantisa. El resultado se muestra a continuación, en la que el signo del resultado es

negativo:

Ahora tenemos que normalizar. Nos disminuir el exponente tres veces y cambiar
la mantisa-de normalizado a la izquierda tres posiciones:

4.52
Ejemplo 4.25 ( Continuado)

La mantisa es ahora de 24 bits, por lo que se redondea a 23 bits.

El resultado es R = - 2 127 - 127 × 1.0100011 = - 1.2734375 , como se esperaba.

4.53

Potrebbero piacerti anche