Pedido de Toturial - Operações com byte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Pedido de Toturial - Operações com byte

Mensagem por Kabeção em Sab 28 Jun 2008, 14:01

tava mechendo aqui pra fazer uma AI pra meu jogo.
ae me deparei com algo que nunca tinha entendido direito:
Operação com arquivos binarios e operadores de bitwise (& | ^).

sera que alguem sabe de algum tuto ou pode explicar ae?
vlw!

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por pedrosorio em Sab 28 Jun 2008, 14:51

& - and binário;
| - or binário;
^ - xor binário.

Esses operam com números em binário. Exemplo simples:

Como você sabe, 5 se escreve 101 em binário, 6 se escreve 110.
Se fizermos 5 & 6, vamos obter o and binário, ou seja, que devolve 1 em cada casa se e só se ambas os números tiverem 1 nessa casa.
Neste caso:

101 = 5
110 = 6
--------- &
100 = 4

E se fosse |? Nesse caso seria or binário, que devolve 1 em cada casa se pelo menos um dos números tiver 1 nessa casa.
Neste caso:

101 = 5
110 = 6
--------- |
111 = 7

E no caso do ^? Bom esse é o xor binário, que devolve 1 em cada casa se APENAS UM dos números tiver 1 nessa casa.
Neste caso:

101 = 5
110 = 6
--------- ^
011 = 3

Existem ainda mais dois operadores binários em GML, são eles: << e >> que multiplicam e dividem, respectivamente números binários, 'rodando' as casas na direcção indicada. Eles vão dividir/multiplicar por uma potência de base 2 porque vão rodar o número n casas para a direita/esquerda.

Exemplo
5>>2 = 101>>2 = 001 = 1
7>>1 = 111>>1 = 011 = 3

etc.

P.S.: alguma dúvida, só perguntar

pedrosorio

Número de Mensagens : 50
Idade : 28
Data de inscrição : 15/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://pedrosorio.nfshost.com

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por Kabeção em Sab 28 Jun 2008, 15:07

a agora entendi. mas não vejo a utiladade ou em que poderia usar isso. :|
tem algum exemplo do uso disso em um jogo?

vlw pedrosorio. Smile

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por pedrosorio em Sab 28 Jun 2008, 16:01

Oh... Pois, realmente não tenho... Mas podem ser úteis. Se você souber como está organizado um determinado formato de ficheiro pode ser útil já que geralmente se guarda mais do que uma informação por byte, aí é importante saber manipular para extrair a informação de todos os bits.

Outro exemplo, imagine que você quer enviar o mínimo de informação num jogo online e que tem 8 variáveis de valor true/false. Em vez de enviar as 8, você envia 1 variável apenas. Imagine que nessa variável (chamemos-lhe 'num') temos 8 bits e cada bit representa verdadeiro(1) ou falso(0). Você quer saber o valor do 5ª bit (a contar da direita), aí você faz:

bit5 = (num>>4) & 1;

Imagine por exemplo que a variável tinha esta informação em binário:

87654321 - bit número
00110011 - informação no bit

Ao fazer num>>4 ia ficar assim:

87654321 - bit número
00000011 - informação no bit

Em seguida fazemos um and binário com o número 1, que tem a seguinte representação binária:

00000011 = num>>4
00000001 = 1
------------------------ &
00000001 = 1

Ou seja, o 5º bit valia 1. É fácil ver que se valesse 0, o resultado seria 0. Assim você consegue passar muito mais informação com menos bytes.

pedrosorio

Número de Mensagens : 50
Idade : 28
Data de inscrição : 15/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://pedrosorio.nfshost.com

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por Kabeção em Sab 28 Jun 2008, 18:37

assim...
então pode ser usado para manter muita informação com pouco tamanho.

as rom de emuladores em sua maioria são arquivos binarios.
quando se ve as informações da rom diz que tem 256mb enquanto seu arquivo binario tem apenas 32mb.

obrigado pedrosorio!
flw!

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por pedrosorio em Dom 29 Jun 2008, 09:05

Já agora, kabecao, se quiseres mais informação sobre tipos de ficheiros e como estão organizados em forma binária podes consultar este site: http://www.wotsit.org

pedrosorio

Número de Mensagens : 50
Idade : 28
Data de inscrição : 15/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://pedrosorio.nfshost.com

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por Kabeção em Dom 29 Jun 2008, 11:05

era isso que tava procurando.
sempre quis entender com os programas liam aqueles monte de letras estranhas.
agora da pra eu fazer salves e arquivos com os textos do meu jogo em binario.
vlw.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por gambit em Sab 01 Nov 2008, 23:34

tem como fazer para tranformar varios varlores em binario
exenplo
var1=0
var2=0
var3=1

então ele cria o valor 001
e depois fazer o aucontrario

gambit

Número de Mensagens : 156
Data de inscrição : 22/06/2008
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://ssqt.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por Janx em Dom 02 Nov 2008, 00:04

cara de uma olhada na data do topico!
nao reviva topicos!

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Pedido de Toturial - Operações com byte

Mensagem por Conteúdo patrocinado Hoje à(s) 12:34


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum