已经在多个不同的学习资料中看到过这样的论述,可以使用移位的方式来进行乘除2的运算,计算速度快,而且代码更酷,能写出这样的代码,本身就说明计算机的功底还比较扎实!python支持各种位操作,当让也就可以来通过移位进行乘除2的运算。
左移1位,相当于乘2
>>> 12 << 1
24
>>> 12 << 2
48
>>> 12 << 3
96
>>> 12 << 4
192
>>>
>>> -12 << 1
-24
>>> -12 << 2
-48
>>> -12 << 3
-96
>>> -12 << 4
-192
左移N位,就相当于乘上2的N次方!
>>> 1234 << 123
13122138774388689497306383299087561654272
>>> 1234 * 2**123
13122138774388689497306383299087561654272
右移1位,相当于除2后向下取整
向下取整,就是ROUND FLOOR,对应python的 // 操作。 请参考:python中各种ROUND方法
>>>