optmized word.length/2

* divides tend to cost double CPU (perhaps JIT optimizes `/2` into `*.5` automatically, but this is a habit I picked up from hand-coding assembly ;) )
* variable lookups tend to be faster than maths