不知,是有可能實現類似於用位操作:值<=最大
if a > maximum: a = maximum
其中「最大」可以是一個隨機數?
在我目前的代碼中有許多相似的行。當然可以使用:
def foo(a, max=512): return a if a<max else max
只是好奇,如果有一個更優雅和有效的方式。
不知,是有可能實現類似於用位操作:值<=最大
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
函數可用於所有可比較的類型。
謝謝,這真的是最好的選擇。 –
使用最大和最小將使明碼。
話雖這麼說,可使用位變換:http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax
如何使用內置'min'功能? 'a = min(最大,a)',不是一點操作,而是更優雅和簡潔。 – omz
@omz如果我是你,我會提出這個答案。 –
按位操作不會導致更多的協調 –