|
|
1
13
为了获得最佳效率,您通常希望一次处理多个位。 可以使用简单的方法获得固定宽度的二进制表示。如。
_bin(x,8)现在将给出x的低8位的零填充表示。这可用于构建查找表,允许转换器一次处理8位(如果您想将内存用于它,则可以处理更多)。
然后您可以在实际函数中使用它,在返回它时去掉前导零。我还添加了对有符号数字的处理,因为如果没有它,您将得到一个无限循环(负整数概念上有无限多个设置符号位)
[编辑]更改代码以处理有符号整数。
正如您所看到的,当使用大数据块处理长值时,确实是有回报的,但是没有什么比python3内置的低级C代码更好(奇怪的是,256位的速度始终比128位更快!)。使用16位查找表可以改善情况,但除非您真的需要,否则可能不值得,因为它会占用大量内存,并且会引入一个很小但值得注意的启动延迟来预计算表。 |
|
|
2
3
不是快速尖叫,而是直截了当:
|