Advertisement
ipsBruno

(Pawn) 1Bits Manipulação

Jun 26th, 2012
477
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.65 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2. //
  3. //
  4. //        #### ########   ######     ######## ########    ###    ##     ##
  5. //         ##  ##     ## ##    ##       ##    ##         ## ##   ###   ###
  6. //         ##  ##     ## ##             ##    ##        ##   ##  #### ####
  7. //         ##  ########   ######        ##    ######   ##     ## ## ### ##
  8. //         ##  ##              ##       ##    ##       ######### ##     ##
  9. //         ##  ##        ##    ##       ##    ##       ##     ## ##     ##
  10. //        #### ##         ######        ##    ######## ##     ## ##     ##
  11. //
  12. //
  13. //                    Criado por Bruno da Silva (iPs DraKiNs)
  14. //
  15. //          Acesse meu blog sobre programação www.brunodasilva.com
  16. //
  17. //              Seja membro da melhor equipe de programação
  18. //         http://ips-team.forumeiros.com/t2-informacao-inscricao-na-ips
  19.  
  20. //                    [iPs]TeaM soluções de programação em geral
  21. //
  22. //
  23. //                    Bits Booleanos | Poupando a memória em 32x
  24. //
  25. //
  26. /////////////////////////////////////////////////////////////////////////////////
  27.  
  28. #define Bit_Lenght(%0) \
  29.             (sizeof(%0) * cellbits)
  30.            
  31. #define Bit:%0<%1> \
  32.             %0[(%1 +cellbits) / cellbits]
  33.        
  34. stock Bit_Get(bit[], pos, size = sizeof bit) {
  35.  
  36.     new
  37.         index = (pos) / cellbits
  38.     ;
  39.  
  40.     return index > size || index < 0 ? false : (0 != (bit[index] & (1 << pos))) ;
  41. }
  42.  
  43. stock Bit_Set(bit[], pos, bool:val, size = sizeof bit) {
  44.  
  45.     new
  46.         index = (pos) / cellbits
  47.     ;
  48.  
  49.     return index > size || index < 0 ? 0 : (bit[index] = val ?(bit[index] | 1) << pos : bit[index] & ~(1 << pos)), 1;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement