Re : beta ibits -
ipsBruno - 13.10.2013
Eu que expliquei pro Will essa de declarar as arrays e ajustar o tamanho exato para os bits. hehehe.
Muito bom trabalho, parabйns para nуs.
Abraзos
Re: beta ibits -
WLSF - 15.10.2013
Complemento
Lembrando que nгo foi feito o trabalho com 8 bits na include, pois nativamente jб se consegue obter o resultado usando o conceito 'packed' do prуprio pawn. (
char)
As vars de 8 bits trabalhariam a possibilidade 0-255 valores.
pawn Code:
new var[MAX_PLAYERS char];
var {playerid} = 5;
Bastante simples !
Re: beta ibits -
Juniiro3 - 15.10.2013
Boa Willian (y) (Jб dei muita rep nas ultimas 24h :/)
char = character em quase todas as linguagens, e no Pawn significa 8 bits? o.O
Re: beta ibits -
WLSF - 15.10.2013
Quote:
Originally Posted by Juniiro3
Boa Willian (y) (Jб dei muita rep nas ultimas 24h :/)
char = character em quase todas as linguagens, e no Pawn significa 8 bits? o.O
|
Char nas demais linguagem й um objeto e tambйm um tipo primitivo de variбvel.
No Pawn й utilizado para compactar valores.
Como foi explicado no tуpico, vocк tem um valor comum que lhe rende 32 bits(espaзos, por exemplo):
pawn Code:
00000000000000000000000000000000 //32 bits
Quando vocк cria vetores como [MAX_PLAYERS], sгo 500 valores que rendem 32 bits para cada um desses valores.
Com essa include vocк consegue controlar melhor isto, e alйm disto, utilizando char tambйm(sу que somente para valores 0-255).
Ficando mais ou menos assim:
Code:
00000000 00000000 00000000 00000000 // 32 bits
Vocк pode notar que eu separei os 32 bits em casinhas de 8 bits, й isso que o pack(char) faz.
Assim vocк consegue utilizar valores com um tamanho menor de memуria ocupada, visando que vocк nгo utilizaria um nъmero de 32 bits...
Logo se vocк usa MAX_PLAYERS em char, ao invйs de um vetor de 500, vocк teria 500 / 4 = 125, oque й uma reduзгo muito, muito grande.
Re: beta ibits -
Juniiro3 - 15.10.2013
Quote:
Originally Posted by Willian_Luigi
Char nas demais linguagem й um objeto e tambйm um tipo primitivo de variбvel.
No Pawn й utilizado para compactar valores.
Como foi explicado no tуpico, vocк tem um valor comum que lhe rende 32 bits(espaзos, por exemplo):
pawn Code:
00000000000000000000000000000000 //32 bits
Quando vocк cria vetores como [MAX_PLAYERS], sгo 500 valores que rendem 32 bits para cada um desses valores.
Com essa include vocк consegue controlar melhor isto, e alйm disto, utilizando char tambйm(sу que somente para valores 0-255).
Ficando mais ou menos assim:
Code:
00000000 00000000 00000000 00000000 // 32 bits
Vocк pode notar que eu separei os 32 bits em casinhas de 8 bits, й isso que o pack(char) faz.
Assim vocк consegue utilizar valores com um tamanho menor de memуria ocupada, visando que vocк nгo utilizaria um nъmero de 32 bits...
Logo se vocк usa MAX_PLAYERS em char, ao invйs de um vetor de 500, vocк teria 500 / 4 = 125, oque й uma reduзгo muito, muito grande. 
|
Beleza entendi
O primeiro bit da sequencia й o significativo (acho), que й usado para sinalizar se o nъmero й negativo ou positivo, certo?
Re: beta ibits -
Dolby - 15.10.2013
Quote:
Originally Posted by Juniiro3
Beleza entendi
O primeiro bit da sequencia й o significativo (acho), que й usado para sinalizar se o nъmero й negativo ou positivo, certo?
|
Nгo sou Willian... Mas Exato.
Re: beta ibits -
WLSF - 15.10.2013
Quote:
Originally Posted by Juniiro3
Beleza entendi
O primeiro bit da sequencia й o significativo (acho), que й usado para sinalizar se o nъmero й negativo ou positivo, certo?
|
0-255, nгo tem porque armazenar sinal.
Veja bem...
Code:
00000000 00000000 00000000 00000000
Como eu separei UMA variбvel em 4 pedaзos de 8 bits, isso indica que agora eu tenho 4 possнveis variбveis em uma sу.
Eu posso escrever 4 valores em apenas 1 variбvel.
Por isso quando usamos char, o uso da mesma muda de [], para {}.
E o valor sу pode variar entre 0-255 porque 8 bits ativos gera o valor 255.
@EDIT
no geral й isso mesmo, o ultimo bit(MSB) representa o sinal.
Re: beta ibits -
shittt - 15.10.2013
Opa sr. wilian estou tendo um problema :/ Acho que sua include nao e compativel com alguma include minha
Re: beta ibits -
WLSF - 15.10.2013
Quote:
Originally Posted by shittt
Opa sr. wilian estou tendo um problema :/ Acho que sua include nao e compativel com alguma include minha
|
Qual foi o problema ?
Re: beta ibits -
shittt - 15.10.2013
Quote:
Originally Posted by Willian_Luigi
Qual foi o problema ?
|
a foi mal te encher o saco , era so atualizar a include -_-
Re: beta ibits -
XxFaTaLxX - 15.10.2013
Bacana.
+REP
Re: beta ibits -
WLSF - 15.10.2013
@Atualizado. - 15/10/2013
- Implementaзгo de novas funcionalidades extras para manipulaзгo de condicionais.
- Melhorias nos cбlculos para garantir a seguranзa e velocidade.
@Funcionalidades implementadas.
- size(arr[], type) # Retorna o tamanho da estrutura criada.
pawn Code:
new bit4: var <6>;
new bit4: var2 <9>;
printf("%d", size(var, bit4)); //retorna 8, significando que vocк estб utilizando uma variбvel de apenas 8 casas(possibilidades) de 4 bits.
printf("%d", size(var2, bit4); //retorna 16, significando que vocк estб utilizando uma variбvel de 16 casas(possibilidades) de 4 bits.
- any(arr[], slot, type) # Retorna true/false, true quando hб algum bit ativo(1) no slot indicado, false caso contrбrio.
pawn Code:
new bit4: var <2>;
setBit4(var, 0, 10);
setBit4(var, 1, 0);
printf("%d", any(var, 0, bit4)); //retorna 1/true, significando que o slot 0 tem algum bit ativo.
printf("%d", any(var, 1, bit4); //retorna 0/false, significando que o slot 1 nгo tem nenhum bit ativo.
- none(arr[], slot, type) # Retorna true/false, true quando nгo hб nenhum bit ativo(1) no slot indicado, false caso contrбrio.
pawn Code:
new bit4: var <2>;
setBit4(var, 0, 10);
setBit4(var, 1, 0);
printf("%d", none(var, 0, bit4)); //retorna 0/false, significando que o slot 0 tem algum bit ativo.
printf("%d", none(var, 1, bit4); //retorna 1/true, significando que o slot 1 nгo tem nenhum bit ativo.
Hб atualizaзхes de funcionalidades pendentes como a bitCount que serб implementado somente mais a frente,
para quem tiver dъvidas em relaзгo ao uso, haverб um lugar para dъvidas a respeito.
Tуpicos relacionados:
beta iBits
beta iCmd 7.0(rбpido)
beta iLoops
beta iEach
Re: beta ibits -
PT - 15.10.2013
Opa
cada vez mais melhorando
Bom trabalho cara.
Re: beta ibits -
shittt - 15.10.2013
Bom trabaiф
Re: beta ibits -
WLSF - 04.11.2013
@Atualizado. - 04/11/2013
- Implementaзгo do uso de matrizes.
- Implementaзгo de novas formas de manipular variбveis, facilitando o uso geral.
@Implementaзхes.
pawn Code:
bit_var nome <MAX_PLAYERS @bit1>;
bit_array matriz <MAX_PLAYERS, 10 @bit2>;
bit_var_set:2(nome, 0, 1);
bit_var_get:2(nome, 0);
bit_array_set:2(matriz, 0, 0, 1);
bit_array_get:2(matriz, 0, 0);
Os exemplos serгo explicados no tуpico de uso da ibits.
As prуximas atualizaзхes serгo de dimensгo maior, por isso serгo feitas em tуpicos separados.
Tуpicos relacionados:
beta iBits
beta iCmd 7.0(rбpido)
beta iLoops
beta iEach
beta iImage
projeto INPCS
IsPath
Re: beta ibits -
smiiir - 04.11.2013
Boa agora sim. :P
Ainda nгo tem suporte a string ?
Enfim bom trabalho
Re: beta ibits -
WLSF - 04.11.2013
Quote:
Originally Posted by iSmirnoff
Boa agora sim. :P
Ainda nгo tem suporte a string ?
Enfim bom trabalho
|
O bruno deu a ideia de separar pra ficar melhor, jб que o manipulamento de strings й amplo...
iString, a prуxima integrante da IPSI.
Re: beta ibits -
smiiir - 04.11.2013
ai sim..
Essa livraria vai longe ainda
Respuesta: beta ibits -
DanDRT - 04.11.2013
Estou usando e a diferenзa й notбvel!
Muito bom, Parabйns Will.