值<=最大值

2024-04-30 00:26:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道,有没有可能使用位操作实现类似的功能:

if a > maximum: a = maximum

其中“最大值”可以是随机数?你知道吗

在我当前的代码中有许多类似的行。当然可以使用:

def foo(a, max=512): return a if a<max else max

只是好奇有没有更优雅有效的方法。你知道吗


Tags: 方法代码功能returniffoodefelse
2条回答

使用maxmin可以获得清晰的代码。你知道吗

也就是说,可以使用位旋转:http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax

无需为此定义自己的函数,minmax已内置:

a = min(maximum, a)

根据Raymond's answer,也可以使用位操作:

a = maximum ^ ((a ^ maximum) & -(a < maximum))

但在绝大多数情况下,性能优势并不值得让代码变得很难理解。而且,这只适用于整数,而min函数可以用于所有可比较的类型。你知道吗

相关问题 更多 >