Во-первых, вы можете не сдвигать byte
в Java, вы можете только сдвигать int
или long
.Таким образом, byte
будет проходить повышение в первую очередь, например
00101011
-> 00000000000000000000000000101011
или
11010100
-> 11111111111111111111111111010100
Теперь x >> N
означает (если вы просматриваете его как строку двоичных цифр):
- Отбрасываются самые правые N битов
- Самый левый бит повторяется столько разпри необходимости дополнить результат исходным размером (32 или 64 бита), например,
00000000000000000000000000101011 >> 2
-> 00000000000000000000000000001010
11111111111111111111111111010100 >> 2
-> 11111111111111111111111111110101