Pra que servem os operadores >> >>> <<

Olá pessoal,

Queria saber em que tipos de aplicações são usados os operadores, >> >>> <<, de bit shift. Sei que o operador >> desloca bits para a direita e mantém o sinal, sei também que >>> desloca bits para a direita mas não mantem o sinal, caso seja negativo, se torna positivo e sei que o operador << desloca bits para a esquerda, preenchendo a direita com zeros.

O que quero saber mesmo é onde uso este operadores, algumas pessoas me disseram que são utilizados em criptografia, outra me disseram que estes operadores fazem multiplicação e divisão, ainda não me convenceram.

Alguém aí poderia dar uma luz, dizendo realmente qual a finalidade prática deste operadores.

Dispenso explicações do tipo “EU ACHO”. e agradeceria bastante se pudesse mostrar exemplos.

Muito obrigado a todos

Sim são usados para multiplicar e dividir, deslocar 1 casa a esquerda significa multiplicar por 2 por exemplo, a multiplicação feita desta forma é mais rápida … mas sei la … achu q não é tão usal para a programção em alto nível …

ALguem pd manda um exemplo d um fonte simples ???

Eu corrigi a minha ultima msg… eu tinha colocado que se vc deslocasse 2 casas pra esquerda estaria multiplicando por 2, o correto seria 1 casa …

Ae esse codigo faz divisão e multiplicação utilizando os operadores …

public class Teste {

   public static void main(String[] args) {
	int x=2;
		
	System.out.println("Multiplicação 2*2 é ->"+ (x<<1) );
	System.out.println("Multiplicação 2*4 é ->"+ (x<<2) );
	System.out.println("Multiplicação 2*8 é ->"+ (x<<3) );
	
	System.out.println("Divisão 2*2 é ->"+ (x>>1) );
		
   }
}

Faloww ae !!!

Valeu irmao!!! :razz:

Aí pessoal, brigadão mesmo :grin:

Mas deixa eu fazer a última pergunta.

E se eu quiser multiplicar 2 * 3, ou 2 * 5, ou 2 * 7, ou 2 * 10, sacaram né, usando os operadores, como faço?? ou não têm como?

Valeu mesmo :grin:

(2 * 3) = (2 << 3) = (2³)

sacou? o numero de deslocamentos é a potencia.

[quote=“jpc”]Aí pessoal, brigadão mesmo :grin:

Mas deixa eu fazer a última pergunta.

E se eu quiser multiplicar 2 * 3, ou 2 * 5, ou 2 * 7, ou 2 * 10, sacaram né, usando os operadores, como faço?? ou não têm como?

Valeu mesmo :grin:[/quote]

Não dá para realizar qualquer multiplicacao com os operadores de deslocamento de bits. Se pudesse, o operador de multiplicacao já faria isso por debaixo dos panos. :wink:

Obrigado Pessoal, agora estou convencido da funcionalidade desses operadores

Obrigado a todos :grin: :grin: :grin: