GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Operadores Bitwise – Matemática Lógica Aula 1 de 2

2 participantes

Ir para baixo

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty Operadores Bitwise – Matemática Lógica Aula 1 de 2

Mensagem por GameMakerTutoriais Qui 17 Nov 2011, 03:46

Vou postar novamente os dois tutoriais sobre operadores bitwise porque tinham se perdido com o backup do fórum. blz

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Cartao10
Cartão perfurado

Lógica e Operadores de bits - Parte 1 de 2

Autor: bl8086 (Brendan LS)

Nessa matéria que fizemos, vamos adentrar um pouco mais na manipulação binária de dados na memória. Esse tutorial vai ser importante não só para quem está freqüentando as aulas de Assembly do fórum, mas o conceito e a lógica a ser passada aqui valem também para qualquer linguagem de programação (C++, Pascal, etc), pois implica o uso da matemática lógica, a base fundamental para qualquer cálculo feito pelo computador (o que nós vamos entender agora). Ele está dividido em duas partes, uma para o conceito e uma para o uso na linguagem.

Não vamos focar nas ramificações da lógica, como o uso de tabelas verdade ou fazer comparações entre tautologias, contingências e outras chatices que deixam o conceito básico longe do que realmente é! Aqui vamos priorizar somente os elementos essenciais para realizar cálculos que utilizam operadores bitwise, os operadores para bits! Todavia, poderemos ter um tópico mais completo sobre matemática lógica aqui mesmo no nosso fórum de matemática. Enfim, vamos começar!

Nós já aprendemos que o coração do nosso computador, a Unidade Central de Processamento (CPU), só “entende” a linguagem de máquina, ou seja, códigos binários. E é através de zeros ( 0 ) e uns ( 1 ) que ele pode realizar todo tipo de cálculo matemático, seja ele simples ou complexo, visto que qualquer operação aritmética pode ser feita por simples adição e subtração.

Um conceito simples a ser introduzido agora é que um bit jamais poderá ser 0 e 1 ao mesmo tempo. Ou ele é absoluto 0 ou ele é absoluto 1, e a implicação dos cálculos de lógica parte dessa premissa básica de que um bit pode ser verdadeiro ( 1 ) ou falso ( 0 ). Isso pode parecer simples (e de fato é), mas saiba que talvez tenha sido essa (a implicação de cálculos pela lógica) uma das mais importantes descobertas para o avanço da humanidade!

Operadores Bitwise – Matemática Lógica Aula 1 de 2 200px-10
Aristóteles

Rege a história que, foi na antiga Grécia, com Aristóteles, que começou o estudo mais aprofundado da matemática lógica. Mas naquela época, a implicação partia de situações corriqueiras no dia a dia das pessoas, e como qualquer criança sabe, julgar um fato por ser verdadeiro ou falso é muito simples a partir do momento que se tem um fato verdadeiro como pressuposto! Vamos ver um exemplo:

Afirmação: Carlos é alto.
Afirmação: Carlos não é gentil.

Se você sabe que Carlos é alto, então Carlos não é baixo e não pode ser alto e baixo ao mesmo tempo. Também nos foi afirmado que ele não é gentil. Dessa forma, as afirmações a seguir são obviamente falsas:

Falso: Carlos é baixo.
Falso: Carlos é alto e baixo.
Falso: Carlos não é alto.
Falso: Carlos é gentil.

Porém, pela lógica, também poderíamos apenas idealizar alguma qualidade de Carlos, sem afirmá-la de fato, como vamos ver nas frases abaixo. Veja que a segunda frase faz uso da outra qualidade de Carlos, sugerindo que ele seja alto ou gentil, mas nunca os dois casos ao mesmo tempo. Isso é muito importante em implicação lógica, e durante os cálculos (que vamos aprender a seguir) é essencial ter muita atenção.

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10Vamos rever as afirmações verdadeiras:

Afirmação: Carlos é alto.
Afirmação: Carlos não é gentil.

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10Agora, as suposições:

Suposição ou argumento: Carlos é alto ou baixo. (Verdadeiro!)
Suposição ou argumento: Ou Carlos é alto ou Carlos é gentil. (Verdadeiro!)
Suposição ou argumento: Carlos não é alto e é gentil. (Falso!)
Suposição ou argumento: Mas SE Carlos não é alto então ele é gentil. (Verdadeiro!)
Suposição ou argumento: Ou Carlos não é gentil ou Carlos é baixo. (Verdadeiro!)

Tudo bem, mas e quanto à capacidade do computador em realizar cálculos usando apenas comparações simples como essas? Vejamos...

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Gottfr10
Gottfried Leibniz

Há mais de três séculos, um matemático chamado Gottfried Leibniz idealizou o sistema de lógica para o que então seria o precursor do sistema binário que conhecemos hoje, porém, tão simples quanto 0s e 1s, Leibniz usava apenas F (falso) ou V (verdade). Você provavelmente acharia que foi George Boole (“idealizador” da álgebra boolenada), mas isso nos remete primeiro às escolas aristotélicas e só depois ao Leibniz. O que George Boole fez foi idealizar essa álgebra para o processamento de cálculos realizados por máquinas (controladas por cartões perfurados), e isso foi por volta de 1850. Enfim...

Nota: Se quiser saber mais, só por curiosidade, achei uma página interessante quando estava procurando essa foto do cartão: http://www.prof2000.pt/users/harry/Anos%2040-50.htm

Quando apareceram os primeiros computadores com microprocessador (muitos anos depois), os projetistas pensaram em criá-lo em termo de circuitos lógicos usando novamente o conceito de lógica matemática. Os cálculos feitos por esses circuitos só são possíveis porque combinações de micro-transistores podem realizar essas operações com voltagens “ligado” ( 1 ) ou desligado ( 0 )!

Por isso existem três operações fundamentais, que podem ser feitas com bits:
Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10 E ( AND )
Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10 OU ( OR )
Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10 NÃO ( NOT )

Quando usamos esses operadores estamos usando a implicação lógica que vimos no exemplo das qualidades de Carlos. Uma boa dica para concurso agora, vamos traduzir as frases que usamos em bits (0 ou 1):

Carlos não é baixo.
Nós sabemos que ele é alto, então essa afirmação sinaliza 1 bit pois é verdadeira, e está negando o valor contrário ao que é verdade.

Carlos não é alto e é gentil.
Nós sabemos que ele não é gentil então afirmar isso como verdade é falso ( 0 ). Se ele é 0 e 0 então essa afirmação sinaliza 0 bit.

Carlos é alto ou baixo.
Carlos pode ser 1 ou 0? Sim! Portanto essa afirmação é verdade ( 1 ), e sinaliza 1 bit.

Todo os cálculos feitos pelo processador seguem à essa regra simples e lógica! E é dessa forma tão simples que são feitos os mais complicados cálculos científicos propostos pela ciência. Quando usamos o operador E (AND), ele retornará 1 bit sempre que os dois bits comparados forem 1. Quando se usa o operador OU (OR), ele retorna 1 bit sempre que pelos menos um dos dois bits comparados for 1. E quando usamos a negação NÂO (NOT) estamos invertendo o valor do bit. O que é 0 se tornará 1, e vice-versa.

Essa foi a primeira parte da nossa aula sobre operadores binários, na verdade foi uma introdução para que possamos entender o conceito do uso. O próximo tutorial também será parte das aulas do nosso fórum de Assembly, então, na medida em que eu for criando o material, vou colocando os links de um para outro. Abraços!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty Re: Operadores Bitwise – Matemática Lógica Aula 1 de 2

Mensagem por Lauro Sex 03 Fev 2012, 17:33

Hehe, algumas suposições ou afirmações são tão confusas que umas vezes tiver de repensar se Carlos é gentil ou não, se é alto ou não. Interessante cara, Ninguém nunca pensou que com o silogismo categórico (filosofia) poderíamos criar até super-máquinas avançadas! Mas, se pensar bem, nosso cérebro usa esse cálculo todos os dias, mesmo que pareça não usar.
Eu gosto de aulas assim, sem usar gml, assembly, código, programa, nem nada, tudo na base da lógica (ou silogismo categórico, também conta xD)
Té mais, continue criando tópicos assim flw
Lauro
Lauro

Games Ranking : Nota D

Notas recebidas : C+D
Data de inscrição : 09/11/2010
Reputação : 11
Número de Mensagens : 855
Prêmios : Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty Re: Operadores Bitwise – Matemática Lógica Aula 1 de 2

Mensagem por GameMakerTutoriais Sex 03 Fev 2012, 22:16

Valeu! Obrigado pelo comentário! Eu também gosto mais de escrever sobre teoria do que colocar códigos... Se a pessoa fixar bem a teoria, transpor o conhecimento pra linguagem não é tão difícil (independente da linguagem). Falou!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Operadores Bitwise – Matemática Lógica Aula 1 de 2 Empty Re: Operadores Bitwise – Matemática Lógica Aula 1 de 2

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos