ビット操作を使用して同様のことを達成することは可能でしょうか:
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
関数はすべての同等の型に使用できます。
maxとminを使用すると、コードが明確になります。
そうは言っても、ビットいじりを使用することは可能です: http://graphics.stanford.edu/~seander/bithacks.html#IntegerMinOrMax