16.03.2014, 20:02
Й um tutorial decente, feliperch .
Eu nгo entendia essa tйcnica atй ler seu tutorial, sendo que no campo da programaзгo ela muitas vezes й necessбria para a manipulaзгo de bits, visto que o menor tamanho de dado que os computadores de hoje em dia internamente conseguem reconhecer equivale a 1 byte (8 bits).
Contudo, devo avisar que, enquanto fazia testes, percebi uma certa falha nesta linha do tutorial, que supostamente transformaria em 0 somente o bit relativo a IS_PLAYER_LOGGED:
De acordo com o tutorial, a constante IS_PLAYER_LOGGED de fato equivaleria а seguinte informaзгo de 32 bits :
Se, por exemplo, a variбvel pFlags[playerid] armazenasse a seguinte informaзгo de 32 bits, que representaria o valor 1 para todas as constantes da enum:
Entгo, com isto :
As informaзхes binбrias que citei seriam multiplicadas bit a bit entre si, resultando neste novo valor de pFlags[playerid]:
Isso significa que o bit correspondente a IS_PLAYER_LOGGED seria mantido, enquanto todos os outros assumiriam o valor 0.
Por ser o objetivo justamente o inverso, ou seja, que o bit de IS_PLAYER_LOGGED torne-se 0 e todos os outros sejam mantidos, й que se costuma incluir uma operaзгo de negaзгo bit a bit no processo :
Bem, continue ajudando o fуrum e seus membros com seu diversificado conhecimento. Sem dъvidas й uma participaзгo de destaque.
Espero ter ajudado .
Eu nгo entendia essa tйcnica atй ler seu tutorial, sendo que no campo da programaзгo ela muitas vezes й necessбria para a manipulaзгo de bits, visto que o menor tamanho de dado que os computadores de hoje em dia internamente conseguem reconhecer equivale a 1 byte (8 bits).
Contudo, devo avisar que, enquanto fazia testes, percebi uma certa falha nesta linha do tutorial, que supostamente transformaria em 0 somente o bit relativo a IS_PLAYER_LOGGED:
pawn Код:
pFlags[playerid] &= IS_PLAYER_LOGGED;
De acordo com o tutorial, a constante IS_PLAYER_LOGGED de fato equivaleria а seguinte informaзгo de 32 bits :
pawn Код:
00000000000000000000000000000010
Se, por exemplo, a variбvel pFlags[playerid] armazenasse a seguinte informaзгo de 32 bits, que representaria o valor 1 para todas as constantes da enum:
pawn Код:
00000000000000000000000000001110
Entгo, com isto :
pawn Код:
pFlags[playerid] &= IS_PLAYER_LOGGED;
As informaзхes binбrias que citei seriam multiplicadas bit a bit entre si, resultando neste novo valor de pFlags[playerid]:
pawn Код:
00000000000000000000000000000010
Isso significa que o bit correspondente a IS_PLAYER_LOGGED seria mantido, enquanto todos os outros assumiriam o valor 0.
Por ser o objetivo justamente o inverso, ou seja, que o bit de IS_PLAYER_LOGGED torne-se 0 e todos os outros sejam mantidos, й que se costuma incluir uma operaзгo de negaзгo bit a bit no processo :
pawn Код:
pFlags[playerid] &= ~IS_PLAYER_LOGGED;
Bem, continue ajudando o fуrum e seus membros com seu diversificado conhecimento. Sem dъvidas й uma participaзгo de destaque.
Espero ter ajudado .