Manipulação byte - bit

int a = 4562344; byte[] b = new byte[4]; b[0] =(byte) (a >> 24); b[1] =(byte) ((a<<8) >>24); b[2] =(byte) ((a<<16) >>24); b[3] =(byte) ((a<<24) >>24);

pegando este trecho de código como referência alguém teria um tutorial para indicar ou poderia explicar o que estes (>> ou <<) fazem?

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html