fcamel says
學到一個小技巧: 若 n 是 32 bit 有號整數, n >> 31 等同於 n >= 0 ? 0 : -1。這才發覺負數的右移運算不會變零啊, 之前沒學好 XD