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
» Problema ao entrar por uma porta e voltar por ela
por aminaro Ontem à(s) 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21


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

2 participantes

Ir para baixo

bitwise - 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

bitwise - 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!

bitwise - 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.

bitwise - 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.

bitwise - 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...

bitwise - 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:
bitwise - Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10 E ( AND )
bitwise - Operadores Bitwise – Matemática Lógica Aula 1 de 2 Seta_a10 OU ( OR )
bitwise - 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 : bitwise - 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

bitwise - 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 : bitwise - 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

bitwise - 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 : bitwise - 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

bitwise - 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