2024-04-30 00:26:22 发布
网友
我想知道,有没有可能使用位操作实现类似的功能:
if a > maximum: a = maximum
其中“最大值”可以是随机数?你知道吗
在我当前的代码中有许多类似的行。当然可以使用:
def foo(a, max=512): return a if a<max else max
只是好奇有没有更优雅有效的方法。你知道吗
使用max和min可以获得清晰的代码。你知道吗
也就是说,可以使用位旋转:http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
无需为此定义自己的函数,min和max已内置:
min
max
a = min(maximum, a)
根据Raymond's answer,也可以使用位操作:
a = maximum ^ ((a ^ maximum) & -(a < maximum))
但在绝大多数情况下,性能优势并不值得让代码变得很难理解。而且,这只适用于整数,而min函数可以用于所有可比较的类型。你知道吗
使用max和min可以获得清晰的代码。你知道吗
也就是说,可以使用位旋转:http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
无需为此定义自己的函数,
min
和max
已内置:根据Raymond's answer,也可以使用位操作:
但在绝大多数情况下,性能优势并不值得让代码变得很难理解。而且,这只适用于整数,而
min
函数可以用于所有可比较的类型。你知道吗相关问题 更多 >
编程相关推荐