[Tutorial] Como funcionam os operadores bit-a-bit? (bitwise)
#1

  • Introduзгo
Aqui um rбpido tutorial, mas que vai ajudar a entender а todos como funcionam os operadores bitwise.

Muita gente se pergunta:
- Como diabos esse resultado foi parar aqui?
- Bitwises sгo operadores ilуgicos?
- Bitwises operam de forma aleatуria?

Calma minha gente, bitwises nгo sгo nada disto. Apenas operam de uma maneira diferente de como podemos perceber. Basicamente, eles operam atravйs dos nъmeros binбrios e seus dнgitos. (os dнgitos dos nъmeros binбrios sгo basicamente chamados de bits acostume-se com isto!)





  • Nъmeros binбrios
Os nъmeros binбrios, sгo uma cadeia de nъmeros 0 e 1 que representam um nъmero decimal grande, basicamente sгo as representaзхes numerais mais bбsicas do universo e й considerada a representaзгo universal em caso de contato com extraterrestres, sabia?

E por serem tгo bбsicos, todo processamento do computador й baseado nisto. 0 e 1, ou como alguns conhecem melhor. FALSE e TRUE (verdadeiro, falso)


Aqui vou dar um exemplo de nъmero binбrio:

0b111 й o nъmero 7

O que significa 0b? 0b й a conveзгo em algumas linguagens para DEMONSTRAR ao compilador que estamos representando um nъmero binбrio, e nгo um nъmero decimal. Atй porque se nгo tivesse 0b na frente, o programa iria achar que estamos mostrando o nъmero 111 e nгo o nъmero 7.


Estгo compreendendo atй aqui? Se nгo compreenderam, voltam e releiam novamente. Caso vocк nгo souber o que sгo nъmeros binбrios, vai precisar pedir algumas aulinhas para sua professora de matemбtica ou pesquisar na internet, pois neste tutorial eu ensino como funcionam os operadores bit-a-bit e nгo nъmeros binбrios.





  • Bit-a-bit
Os operadores de bits, trabalham na forma BIT A BIT. Isto й, eles operam os dнgitos do nъmeros binбrios entre si. Sacou a charada? BIT A BIT; DIGITO BINБRIOA DIGITO BINБRIO

Como assim digito a digito? Simples, meus queridos, quando eu tiver um nъmero decimal com um operador BIT a BIT e outro nъmero decimal, basicamente o operador bit a bit pega cada bit deste nъmero e compara com outro




Nгo entendeu, ainda?? Quer que eu desenhe ?? Veja a imagem abaixo




Basicamente, eles funcionam todos da mesma maneira, operando cada bit do digito binбrio e colocando o novo valor comparado. PORЙM, cada um tem suas regras.

No caso as regras do & (AND) foram estas:

1 & 1 = 1
0 & 1 = 0
1 & 0 = 0
0 & 0 = 0


Mas tambйm hб outras regras dos outros operadores, como | (OR):

1 | 1 = 1
0 | 1 = 1
0 | 0 = 0
1 | 0 = 1


Tambйm temos XOR

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0


Hб outras tabelas, essas tabelas se chamam Tabela Veritativa. O

Espero que gostem, prestem muita atenзгo. Se entendeu o tutorial, aproveita e agradeзa em um comentбrio abaixo, ou enviando reputaзгo para meu perfil. Hб pouquнssimos tutoriais sobre isto na internet

E se nгo entenderam ainda, й porque sгo burros e nгo servem pra programaзгo #true





Autoria

Este tutorial foi redigido por Bruno da Silva, e colaborado por William Luigi.
[iPs]TeaM!



Atй mais
Reply
#2

Comentбrio reservado para futuras referencias ou adendos.
Reply
#3

LOOOL perfect bruno, cada dia impressionando mais '-' parabйns. +rep
Reply
#4

Muito bom bruno


o

Quote:

0b

e como nas cores o

Quote:

0x

certo?

e pra informar uma mensagem ao compilador sobre algo no caso do 0x e a informar que e uma cor, estou errado?
Reply
#5

Nгo. 0b indica binбrio. 0x indica hexadecimal. Sгo representaзхes nъmericas diferentes.
Reply
#6

Quote:
Originally Posted by ipsBruno
View Post
Nгo. 0b indica binбrio. 0x indica hexadecimal. Sгo representaзхes nъmericas diferentes.
certo, mas apenas servem para mostrar ao compilador que estamos a escrever ou algo binario ou hexadecimal

era so essa pequena duvida

obrigado bruno


Excelente trabalho.
Reply
#7

Quote:
Originally Posted by PT
View Post
Muito bom bruno


o



e como nas cores o



certo?

e pra informar uma mensagem ao compilador sobre algo no caso do 0x e a informar que e uma cor, estou errado?
Certo...

#tutorial: Muito util agora a coisa ta ficando facil no c++. great

#bruno; Nice job man.

0xFFFF 0b1010 0o142
Reply
#8

Exatamente PT, se fizeres:


pawn Code:
printf("%d e %d", 0b111, 7, 0x7);
irб imprimir tudo a mesma coisa

Com relaзгo as cores, nгo necessariamente. Vocк pode representar cores com nъmeros binбrios tambйm 0b1111111, 0x1111EF ou 189189741 Hб sites de convertem binбrio para hexadecimal, decimal para binбrio e vice versa.
Reply
#9

Quote:
Originally Posted by ipsBruno
View Post
Exatamente PT, se fizeres:


pawn Code:
printf("%d e %d", 0b111, 7, 0x7);
irб imprimir tudo a mesma coisa

Com relaзгo as cores, nгo necessariamente. Vocк pode representar cores com nъmeros binбrios tambйm 0b1111111, 0x1111EF ou 189189741 Hб sites de convertem binбrio para hexadecimal, decimal para binбrio e vice versa.
nao seria assim:

pawn Code:
printf("%d e %d e %d", 0b111, 7, 0x7);
?
fiquei com a duvida pois vi 3 parametros. 0b111, 7, 0x7
Reply
#10

Sim, desculpe o erro. Estou saindo pra ir pra academia agora e estava com pressa.

Abraзos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)