Hola soy nuevo en el foro :)... y preguntas :P

Estado
Cerrado para nuevas respuestas.

IEN

Newbie Lvl 1
Buenas... encontre este maravilloso foro... y nada me registre y aca estoy xD...

Estuve tocando un poco el codigo fuente y me encontre con... bueno no son problemas :p... es algo que no entiendo y lo otro me pueden facilitar horas de buscar codigo _:p...

Primero que nada

Dim Ta As Long
Ta = GetTickCount() And &H7FFFFFFF


En muchas partes en la que requiere utilizar la Api para medir tiempo se agrega esta linea "And &H7FFFFFFF" por lo que investigue... utiliza el operador And para evitar el desbordamiento de la variable long :S... si alguno me puede profundizar en el tema :p


y la otra cuestion es... no puedo encontrar en el codigo servidor... en que parte se reciben los mensajes de los clientes xd... solamente encuentro las lineas donde el servidor envia informacion xD


bueno de momento eso es todo gracias XD
 

Mikinel

Licenciado en Cinismo
Lo de los ticks no sabria responderte pero el server procesa los paquetes recibidos en los Subs HandleData
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
El operador And en este caso es a nivel bit. Lo que hace es lo siguiente:

1011011
&0011110
------------
0111010

Lo que hace el And es evaluar el bit, si los dos son iguales entonces se pone el bit 1, si son diferentes se pone el bit0.

&H7FFFFFFF es Hexagesimal, y este numero es 16^7*7. (NO estoy seguro si es *7 ya que no me acuerdo ahora bien la notación Hexa en VB, tal vez el 7 es de la notación y no tiene nada que ver, pero supuestamente eso es igual a 0x7FFFFFFF).
 

IEN

Newbie Lvl 1
se podria deducir... que si esta por hacerle overflow a la variable long (por lo que lei gettickcount funciona sobre doublewords)... reduce el valor ?


Yo lei que la operacion se hacia para que la variable no reviente... lo que no sabia es que hacia explicitamente


gracias :)
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
Supuestamente ahy estoy usando 64 bits, y tratando de generar el mayor número posible....
 

Zy

Newbie Lvl 2
Tavo dijo:
El operador And en este caso es a nivel bit. Lo que hace es lo siguiente:

1011011
&0011110
------------
0111010

Lo que hace el And es evaluar el bit, si los dos son iguales entonces se pone el bit 1, si son diferentes se pone el bit0.

&H7FFFFFFF es Hexagesimal, y este numero es 16^7*7. (NO estoy seguro si es *7 ya que no me acuerdo ahora bien la notación Hexa en VB, tal vez el 7 es de la notación y no tiene nada que ver, pero supuestamente eso es igual a 0x7FFFFFFF).

No, el and solo devuelve 1 si ambos bit son 1. Lo que vos definiste es un XOR al revés.

00000000
&00000000
-------------
00000000

10101010
&01010101
-------------
00000000

(Lo probé en C++, pero asumo que en VB es igual)
 
A

Anonymous

Invitado
Así es, en el operador AND se tienen que cumplir todas las condiciones planteadas para que la salida sea 1, aca se compara bit a bit, son dos condiciones y tienen que ser ambos 1 para que devuelva 1.

Por otra parte el XOR al revés sería el XNOR. :p
 
Estado
Cerrado para nuevas respuestas.
Arriba