Java - AYUDA URGENTE

 
Vista:

AYUDA URGENTE

Publicado por Pau Labarta (8 intervenciones) el 03/02/2001 23:28:50
Soy un novato en Java y me gustaria comprender a fondo la utilidad de los operadore a nivel de bit, sobretodo el NOT i el DEPLAZAMIENTO "<<, >> ..."
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA URGENTE

Publicado por Xavi Canal (241 intervenciones) el 05/02/2001 08:42:09
Nas,

a ver, supongo que necesitas unos conceptos de
números binarios pero...

el NOT simplemente niega el valor, usease
NOT 0011 = 1100 (traducido a decimal
NOT 3 = 12 y NOT 12 = 3)

el << hace un desplazamiento a la izquierda
del valor, usease
0011 << 1 = 0110
0011 << 2 = 1100
(un desplazamiento a la izquierda en binario
corresponde a multiplicar por 2, en decimal
3 << 1 = 6
3 << 2 = 12)

supongo que ya habrás deducido para que sirve
el >>, es un desplazamiento a la derecha
(dividir por 2 en binario)

1100 >> 1 = 0110
1100 >> 2 = 0011

(en decimal
12 >> 1 = 6
12 >> 2 = 3)

espero que te sirva de algo

att. Xavi Canal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA URGENTE

Publicado por Xavi Canal (241 intervenciones) el 05/02/2001 08:49:48
Nas,

se me olvidaba, la utilidad

el desplazamiento te puede servir para hacer
una multiplicación o división rápido.
Tienes que tener cuidado no te salgas de rango,
me explico. Imagina el tipo int, en Java no se
cuantos bytes ocupa (creo que 4) pero vamos a
suponer que ocupa 1 byte (de 0 a 255)
entonces al multiplicar tienes que tener cuidado,
imagina
10000000 << 1 (multiplicar por 2 el valor 128)

esto daría 100000000 (9 bits), o sea 256, pero
considerando que el tipo es de 8 bits el
resultado seria 00000000 (8 bits), o sea 0
y al dividir lo mismo, hace una división
perdiendo el resto, o sea 15 / 2 = 7

para el NOT a nivel de bit no se me ocurren
muchas utilidades, una podría ser la
encriptación de datos (sería una encriptación
simple, sería mejor el XOR por ejemplo), me
explico. Imagina que quieres guardar en un
fichero los records de un juego que has hecho,
para hacer más "difícil" las cosas a los
posibles saboteadores de ese fichero haces un
NOT a cada byte antes de guardarlo, así con
el Notepad no podrán sabotearlo ;)

att. Xavi Canal

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar