I think that on python2, the argument to `math.ceil()` will be a rounded-down int because both num_bytes and _ENTRIES_PER_8BYTE will be ints

```
[plo@plo-air ~]$ python2 -c "print(5 / 2)"
2
[plo@plo-air ~]$ python3 -c "print(5 / 2)"
2.5
```

but I'm unsure whether this code will run if the optimized c version is loaded, which is the only case where self._ENTRIES_PER_8BYTE is not 1.

also, 8BYTE should probably be 8BIT