Bueno los operadores a nivel bit son los siguientes <<, >> y >>> solamente, (comentario: el operador <<< no existe en java), para que entiendas como funciona esto es así: supongamos que tienes un número como por ejemplo 26, que esto en binario es: 00011010, el operador >> lo que hace es un desplazamiento de bits a la derecha de acuerdo al número que lo acompañe, ejemplo: int a=26; a=a<<2; esto tendrá como resultado que se correrá a la izquierda los bits así: original: 00011010, después del operador: 01101000, como ves después del desplazamiento se rellenó con ceros a la derecha y los unos del principio se recorrieron 2 posiciones que son las que tú indicaste con el número que le pasas de parámetro, abro un paréntesis que entiendas que la conversión automática de tipos toma efecto para los tipos byte y short, estos tipos son automáticamente promovidos a int, además que estos operadores solo son aplicables unicamente para los tipos de datos enteros, prosiguiendo con el tema en realidad el número original 26 estaba representado por 32 posiciones al ser una variable int, solo puse 8 posiciones por razones de espacio pero para el caso que la operación sea así: a=a<<9; entonces quedaría así: 00110100,00000000, el número con el que indicas las posiciones a desplazar debe ser un número entre 1 y 32 para los int y para el long hasta 64, en realidad solo son considerados los números hasta ese rango pero si indicas un número mayor como por ejemplo a<<=34; entonces sería equivalente a a<<=3; el operador >> funciona de la misma manera solo que si prosiguiendo con nuestro ejemplo tenemos el valor a=241; que es 11110001al ser un int en