Issuu on Google+

FUNDACIÓN UNIVERSITARIA SAN MARTÍN FACULTAD DE UNIVERSIDAD ABIERTA Y A DISTANCIA “Educación a través de escenarios múltiples” Programa de Ingeniería de Sistemas CAT – IBAGUE 2013 / A FASCÍCULO 4

Presentado por: Diego Fernando valencia Moncaleano

Docente: Luis Fernando Niño Ospina

PRIMER SEMESTRE Ibagué-Tolima 07/05/13

1

Diego Fdo. Valencia Moncaleano Ing. Sistemas


INTRODUCCION 1. ACTIVIDADES PAG 1.1………………………………………………………………………………… 1.2………………………………………………………………………………… 1.3………………………………………………………………………………… 1.4…………………………………………………………………………………

2

Diego Fdo. Valencia Moncaleano Ing. Sistemas


ACTIVIDAD 4.1

1. Determine cuál de las siguientes relaciones es verdadera y cuál es falsa (true o false).

a. 8 <= 5 b. 3 > 6(false) c. 4 != 7 d. b == b + 1 e. c++ != c++ f.

19==19(true)

2. Determine por qué el resultado del siguiente enunciado es true (verdadero):

(7 > 10 || 10 > 2 && 3 == 4)

Siete mayor a diez or 10 mayor a dos y 3 igual a cuatro La expresión 7 > 10 es falsa por lo tanto seria verdadero 10 > 2 mientras que 3 == 4 seria también false

3. Qué valor lógico queda almacenado en x. int y = 5; boolean x = (y > 4) && (y < 7); 3

Diego Fdo. Valencia Moncaleano Ing. Sistemas


ACTIVIDAD 4.2 1. Consulte acerca de los operadores de bits y realice dos ejemplos con cada uno de ellos.

Las operaciones a nivel de bit no son muy habituales. De hecho es posible que aunque las hayas visto en un código, no hayas sabido muy bien lo que hacían. Estos operadores se suelen encontrar en algoritmos de encriptación, en operaciones en las que se precise rapidez y/o eficacia, en el manejo de los pixeles de imágenes, etc. Normalmente su uso esta cubierto en la mayoría de libros de Java, pero se suelen pasar por alto por que su relevancia en un código suele ser mucho menor que la del resto de operadores. En esta entrada voy a intentar explicar un poco su funcionamiento con ejemplos reales de uso.

4

Diego Fdo. Valencia Moncaleano Ing. Sistemas


Operadores de desplazamiento Los operadores de desplazamiento a nivel de bits, desplazan ‘n’ bits a la izquierda o la derecha. Esto es lo mismo que decir que multiplicamos el número por 2^n o lo dividimos entre 2^n: 10d

<<

2

=

1010b

<<

2

=

101000b

=

40d

10d >> 2 = 1010b >> 2 = 0010b = 2d Notar que las letras ‘d’ y ‘b’ solo indican, respectivamente, si es decimal o binario. Operador de negación o complemento unario El operador de negación (~) invierte los bits del número sobre el que opera, sustituyendo los unos por ceros y los ceros por unos: ~10d = ~1010b = 0101b = 5d Operadores lógicos En Java tenemos tres operadores lógicos. El primero, el operador AND (&), da resultado 1 si los bits de los dos operandos son 1 y 0 en el resto de casos:

5

Diego Fdo. Valencia Moncaleano Ing. Sistemas


Funci贸n

l贸gica

&:

0

&

0

=

0

0

&

1

=

0

1

&

0

=

0

1&1=1 Ej. 10d & 2d = 1010b & 0010b = 0010b = 2d

El siguiente operador, OR (|), da como resultado 1 si el bit de alguno de los operandos es 1 y cero si no: Funci贸n

l贸gica

|:

0

|

0

=

0

0

|

1

=

1

1

|

0

=

1

1|1=1

6

Diego Fdo. Valencia Moncaleano Ing. Sistemas


Ej. 10d | 2d = 1010b | 0010b = 1010b = 10d Por 煤ltimo, el operador O exclusiva (^), devuelve 1 si uno de los bits de un operando es cero y el del otro es 1. Si esto no se cumple, devuelve 0: Funci贸n

l贸gica

^:

0

^

0

=

0

0

^

1

=

1

1

^

0

=

1

1^1=0 Ej. 10d ^ 2d = 1010b ^ 0010b = 1000b = 8d

7

Diego Fdo. Valencia Moncaleano Ing. Sistemas


Actividades