Kann ich eine detaillierte Beschreibung oder Dokumentation erhalten, wie diese Operatoren intrinsisch arbeiten? Wenn angewendet, ist der Ausgang derselbe. Bisher habe ich zu diesem Thema wenig bis nichts gefunden.Wie funktionieren [n & 1] und [n% 2]?
Antwort
In der Theorie, n&1
Masken aus oder behält nur das niedrigste Bit einer Zahl.
Die n%2
teilt n
durch 2
und gibt den Rest zurück.
Beide Tests sind üblich, um festzustellen, ob eine Zahl gerade oder ungerade ist.
Der Compiler ist es erlaubt äquivalente Funktionalität für den Ausdruck zu ersetzen. Daher kann der Compiler in beiden Fällen Anweisungen für n&1
ausgeben.
Drucken Sie die Liste der Assembler für die Funktion unter verschiedenen Optimierungsstufen.
Warum der Downvote? –
'&' heißt [** bitweiser Operator **] (https://msdn.microsoft.com/en-us/library/4ke0e88k.aspx). –
@FirstStep: Wo erwähne ich den Operator? Ich weiß, dass es einer von vielen bitweisen Operatoren ist. Es heißt "bitweises UND" oder "arithmetisches UND". –
- 1. Lösen: T (n) = T (n/2) + n/2 + 1
- 2. Effiziente Leistung von 2 Serien: (2^n) + (2^(n-1)) + (2^(n-2))
- 3. Python-Array-Manipulation, pi * [n + 1]^2 - pi * [n]^2
- 4. Lösen der Wiederkehrbeziehung T (n) = T (n-1) * T (n-2) + c wobei T (0) = 1 und T (1) = 2
- 5. Rezidiv der Form lösen p [n, m] == p [n, m-2] + p [n-1, m-1] + p [n-2, m]
- 6. Jedes n-mal, n Elemente und erhöhen n um 1
- 7. Wie lösen: T (n) = T (n - 1) + n
- 8. Math.floor (N) vs N // 1
- 9. Asymptotic Komplexität von T (n) = T (n-1) + 1/n
- 10. Warum ist das Rekursions-Idiom in Haskell '' n + 1 'und' n '' und nicht '' n 'und' n-1 ''?
- 11. Sublime Text 2 RegEx ersetzen n durch n + 1
- 12. Wie kann ich die folgende Wiederholung lösen, T (n) = 1 wenn n = 1, sonst T (n) = 2T (n/2) + logn, genau für n eine Potenz von 2?
- 13. JavaScript integer Verschiebung Sicherheit: (n << 1) = (n * 2)
- 14. n & (n-1) Was bewirkt dieser Ausdruck?
- 15. RegEx String zwischen N und (N + 1) th Occurance
- 16. Solving a Recurrence Beziehung T (n) = T (n-√n) +1
- 17. Große O-Klasse für (1/2)^n
- 18. Gradient von n Farben von Farbe 1 und Farbe 2
- 19. Wenn f (n) ∈ ω (g (n)), dann 2^f (n) ∈ ω (2^g (n))
- 20. Ruhezustand. n + 1 wählen
- 21. Split eine Zahl n in Summe von n-1 + n-2 +
- 22. Einfach: Löse T (n) = T (n-1) + n nach Iterationsmethode
- 23. (! N% 2) ist das gleiche wie (! N% 2 == 0)?
- 24. Wie löst man die Wiederholung A (n) = A (n-1) + n * log (n)?
- 25. wie die Wiederholung T (n) = T (n-1) + T (n-3) -T (n-4) zu lösen, n> = 4
- 26. N + 1 Abfrage Probleme
- 27. numpy Array, das ist (n, 1) und (n,)
- 28. Broadcasting (N,) und mit (N, 1) Arrays in numpy
- 29. (3^n + 2^n)% 10 für große n
- 30. Wiederkehr: T (n) = T (n/2) + log N
Der Compiler kann sie so optimieren, dass sie die gleichen Funktionen ausführen. –
Drucken Sie die Assemblersprache für beide Anweisungen und vergleichen Sie. Vergleichen Sie auch die Assemblersprache auf verschiedenen Optimierungsebenen. –
@ThomasMatthews Wenn 'mod'ding von Zweierpotenzen, wie in der Überschrift, ja. – tofro