shift count specified by the right operand [...] As a result, x << 1 is the same as x*2 and x >> 1 is the same as x/2 but truncated towards negative infinity. https://go.dev/ref/spec#Arithmetic_operators (直訳) シフト演算子は左オペランドを、右オペランドで指定した回数だけシフトする。 結果、x << 1は x*2 と同じ意味で、 x >> 1は x/2 と同じ意味になりますが、後者は負の無限大に向かって切り捨てられます。 つまり、<<を使うと、2倍ずつ増えていき、>>を使うと、1/2倍ずつ減っていきます