初歩的な質問なのですが

for(int i = size >> 1 ; ; i >>= 1)

というループがあったのですが
size >> 1 や i >>= 1 というのはどういう意味なのですか?