Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo Operadores Java

Dominando o operador de negação Bit a Bit (~) em Java: o inversor que confunde, mas encanta

Quando falamos de programação, há operadores que usamos o tempo todo sem pensar - como o + , o - , o == . E há outros, mais enigmáticos, que parecem ter saído de um laboratório secreto da computação. Um desses é o operador de negação bit a bit, o famoso ~. Hoje, vou te mostrar que ele não é nenhum bicho de sete cabeças. Pelo contrário: entender o ~  pode te levar a um nível mais profundo de domínio em Java  e em lógica computacional. O que é o operador ~? O operador ~ é chamado de bitwise NOT , ou negação bit a bit. Em vez de agir sobre valores booleanos ( true  ou false ), como o ! , ele trabalha com cada bit de um número inteiro, invertendo-os um a um: Onde era 1, vira 0. Onde era 0, vira 1. Exemplo direto: Saída:  Calma! Por que o resultado foi -6  e não algo como 250? Entendendo com clareza: complemento de dois A chave está em como números negativos são representados na memória. Java usa o sistema chamado complemento de dois . Quando aplicamos ~ ao número 5 ...

Operador de deslocamento à direita (>>): um superpoder escondido no Java que quase ninguém usa (mas deveria)

Se você está estudando Java e nunca ouviu falar do operador >> , ou até viu ele perdido por aí no código de alguém e ignorou por completo... calma! Você não está sozinho. Pouca gente fala sobre os operadores de deslocamento , e menos ainda consegue explicar de forma simples. Mas eu vou te mostrar, passo a passo, por que o operador >> pode deixar seu novo atalho para performance, eficiência e até uma melhor compreensão do funcionamento interno dos computadores.  Vamos nessa? O que é o operador de deslocamento à direita >>? O operador >>  em Java desloca os bits de um número para a direita.  Cada "empurrão" que você dá para a direita divide o número por 2  (e não é mágica, é matemática de computador). Sim, você leu certo: x >> 1 é igual a x / 2, mas mais rápido - especialmente em operações repetitivas, como loops intensos, jogos ou sistemas embarcados. Um exemplo visual simples: Vamos ver o que rolou nos bastidores: O bit foi "empurra...