Delphi - como se usan or , xor

 
Vista:

como se usan or , xor

Publicado por jose (22 intervenciones) el 27/12/2004 20:22:02
como se usan el And, or, xor
gracias
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:como se usan or , xor

Publicado por Kwerty (112 intervenciones) el 27/12/2004 21:29:32
Depende de si quieres usarlos como operadores lógicos (bitwise) o booleanos. Si es como operadores booleanos, pues (por ejemplo)

Edit1.Text:=BoolToStr (true xor true, true);

Reemplaza los operandos del xor por las variables booleanas que quieras.

Si son bitwise

Edit1.Text:=IntToStr (3221 xor 3455);

reemplazando los números por las variables integer que quieras.

Suerte.
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:como se usan or , xor

Publicado por jose (22 intervenciones) el 27/12/2004 22:44:53
pero que obtengo de esto como se calculo
Edit1.Text:=IntToStr (3221 xor 3455);
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:como se usan or , xor

Publicado por M@rceloL (213 intervenciones) el 28/12/2004 00:18:54
Lo que obtenés es un número que resulta de la operación xor a nivel de bits. Digamos:

Supioniendo que estamos trabajando en 8 bits.

12 es 00001100 en binario
148 es 10010100 en binario

así que 12 xor 148 es

00001100
xor 10010100
--------------
10011000

esto en decimal es 152...

¿Se entiende?
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:como se usan or , xor

Publicado por jose (22 intervenciones) el 28/12/2004 13:41:03
mas o menos si esoy bien existe un a tabla
0 - 1 = 1
0 - 0 = 0
1 - 1 = 0
esta bien?
pero en este caso como seria

(1725440 and 65280) con la calculadora me da 21504 el and como seria?
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:como se usan or , xor

Publicado por Janus (32 intervenciones) el 28/12/2004 16:56:55
Como te dijeron, primero transferilo en binario.

La forma en que uno lee de decimal a binario es dividiendo el número por 2, luego se "recuerda" su resto y a continuación se vuelve a dividir por 2 el resultado, así hasta que el número sea inferior a 2, lo cual se hace una última división que siempre da o 1 o 0.

Ejemplo:

100 en decimal a binario sería:

100 / 2 = 50 (resto 0) / 2 = 25 (resto 0) / 2 = 12 (resto 1) / 2 = 6 (resto 0) / 2 = 3 (resto 0) / 2 = 1 (resto 1) / 2 = 0 (resto 1)

Tomando así los restos de izquierda a derecha de los resultados obtenidos.

1, 1, 0, 0, 1, 0, 0 por lo tanto 1100100 en binario es 100 decimal

Tus números en binario son:

110100101010000000000 = 1725440 y 1111111100000000 = 65280

en And sería

110100101010000000000
1111111100000000
-------------------------------------
110100101010000000000

Fijate que en And cuando hay al menos un 0 devuelve 0, sino devuelve 1.

Casualmente, el resultado es 1725440 ^^ porque dio como resultado el mismo número.

Para OR y XOR el sistema en decimal a binario es lo mismo (bah, seguro que sabías :P)

OR devuelve 0 cuando no hay 1, sino devuelve 1.

110100101010000000000
1111111100000000
-------------------------------------
110101111111100000000

En OR se obtiene 1769216

En XOR cuando son distintos devuelve 1, si son iguales devuelve 0

110100101010000000000
1111111100000000
-------------------------------------
110101010101100000000

El número es 1747712
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

Oops

Publicado por Janus (32 intervenciones) el 28/12/2004 16:59:11
Ahí me equivoqué, fijate que los números tienen que estar de derecha a izquierda, o sea

110100101010000000000
1111111100000000
-------------------------------------
110101010101100000000

En realidad sería:

110100101010000000000
............1111111100000000
-------------------------------------
110101010101100000000

Los puntos no son más que espacios :P
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