我想知道,是否可以使用位操作来实现类似的功能:
if a > maximum: a = maximum
“最大值”可以是随机数吗?
我当前的代码中有很多类似的行。当然可以使用:
def foo(a, max=512): return a if a<max else max
只是好奇是否有更优雅和高效的方式。
请您参考如下方法:
不需要为此定义您自己的函数,min 和 max 已经内置:
a = min(maximum, a)
根据 Raymond's answer ,也可以使用位操作:
a = maximum ^ ((a ^ maximum) & -(a < maximum))
但在绝大多数情况下,性能优势并不值得让代码变得非常难以理解。此外,这仅适用于整数,而 min 函数可用于所有可比较的类型。
