Duvida com Shift <<

Tenho uma duvida, sou novo em Java e gostaria de saber o que siginifica quando


public static void main(String a[]){
	
		int number = 200 << 16;
		
		System.out.println(number);
	
	}

o valor retornado é: 13107200 o que significa?

  1. Converta o valor 200 para binário (use a calculadora do Windows em modo científico, para facilitar)

200 decimal = 11001000 binário

  1. Ponha 16 zeros à direita desse número. Se o número de bits passar de 32 (se for um int) ou 64 (se for um long), tire os bits que sobraram à esquerda. Neste caso, temos apenas 24 bits, portanto não precisamos cortar os bits que passam de 32.

11001000 << 16 == 110010000000000000000000

  1. Converta de volta para decimal:

110010000000000000000000 (binário) = 13107200 (decimal)

[quote=thingol]1) Converta o valor 200 para binário (use a calculadora do Windows em modo científico, para facilitar)

200 decimal = 11001000 binário

  1. Ponha 16 zeros à direita desse número. Se o número de bits passar de 32 (se for um int) ou 64 (se for um long), tire os bits que sobraram à esquerda. Neste caso, temos apenas 24 bits, portanto não precisamos cortar os bits que passam de 32.

11001000 << 16 == 110010000000000000000000

  1. Converta de volta para decimal:

110010000000000000000000 (binário) = 13107200 (decimal)
[/quote]

Muito Obrigado… Valeuuuu