I think they are different when `(i+1)*WordLength` becomes negative because of integer overflow. The possible maximum value of `(i+1)*WordLength` is `Integer.MAX_VALUE + 1`, so `(i+1)*WordLength-1` is always positive integer.