Ein Freund wirft einfach einen Code ähnlich dem folgenden C # -Code:
%Vor%Das hat mich zum Nachdenken gebracht. Gibt es einen "anderen" Weg, um Null für negative ganze Zahlen oder einen aktuellen positiven Wert zurückzugeben? Genauer gesagt suche ich, wenn möglich, nach bitweisen Operationen.
Übrigens, mir ist Math.Max(0, i);
Was stimmt nicht mit Math.Max
?
Sie können das Äquivalent ohne eine Verzweigung mit bitweisen Operationen ausführen:
%Vor%Wenn Sie null ersetzen, wird es zu:
zusammengebrochen %Vor%(Quelle: diese Liste mit bitweisen Tricks.)
Wenn Filialen auf Ihrer Plattform extrem teuer wären, könnte sich das in einer inneren Schleife lohnen, nehme ich an, aber es ist ziemlich unklar und nicht die Art von Dingen, die ich außerhalb eines extrem zeitabhängige Funktion.
Kurze Antwort: Nein.
Bitoperatoren machen etwas ganz anderes oder werden vielmehr für verschiedene Probleme verwendet.
Wenn Sie die Größe Ihrer Ganzzahlen kennen, könnten Sie das höchste (höchstwertige) Bit testen; Wenn es 1 ist, ist die Zahl negativ und Sie können darauf reagieren. Aber das wäre viel mehr Arbeit als das einfache "& lt;" testen.
Tags und Links c# bit-manipulation