Improve the bit-shifting logic with good types and so on

Even Roualt, Kurt Schwehr
References #869
1 job for svn-3.6 in 5 minutes and 7 seconds
Status Job ID Name Coverage
  Test
failed #298440659
test

00:05:07

 
Name Stage Failure
failed
test Test
make[4]: Leaving directory '/builds/geos/libgeos/src/precision'
make[3]: *** [Makefile:526: all-recursive] Error 1
make[3]: Leaving directory '/builds/geos/libgeos/src/precision'
make[2]: *** [Makefile:600: all-recursive] Error 1
make[2]: Leaving directory '/builds/geos/libgeos/src'
make[1]: *** [Makefile:472: all-recursive] Error 1
make[1]: Leaving directory '/builds/geos/libgeos'
make: *** [Makefile:419: all] Error 2
ERROR: Job failed: exit code 1