我想知道,是否有可能使用位操作来实现类似的操作:
if a > maximum: a = maximum其中“最大值”可以是一个随机数?
在我当前的代码中有很多类似的代码行。当然可以使用:
def foo(a, max=512): return a if a<max else max只是好奇有没有更优雅更有效的方法。
发布于 2012-04-29 23:39:36
没有必要为此定义你自己的函数,min和max已经内置了:
a = min(maximum, a)根据Raymond's answer,也可以使用位操作:
a = maximum ^ ((a ^ maximum) & -(a < maximum))但在绝大多数情况下,性能优势并不值得让代码变得非常难以理解。此外,这只适用于整数,而min函数可用于所有可比较的类型。
发布于 2012-04-30 00:16:54
使用max和min将使代码清晰。
也就是说,可以使用位旋转:http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
https://stackoverflow.com/questions/10373367
复制相似问题