我可以獲得這些操作員本質上工作的詳細說明或文檔嗎?應用時,輸出是相同的。到目前爲止,我在這個問題上幾乎找不到任何東西。[n&1]和[n%2]如何工作?
回答
理論上,n&1
屏蔽或只保留一個數字的最低位。
n%2
將n
除以2
並返回餘數。
兩者都是常見的測試,以查看數字是偶數還是奇數。
允許編譯器用表達式的等效功能代替。所以編譯器可以針對這兩種情況發出n&1
的指令。
在不同的優化級別下打印該函數的彙編語言列表。
爲什麼downvote? –
'&'被稱爲[**按位運算符**](https://msdn.microsoft.com/en-us/library/4ke0e88k.aspx)。 –
@FirstStep:我在哪裏提及運營商?我知道它是衆多按位運算符之一。它被稱爲「按位AND」或「算術AND」。 –
- 1. 2的(N)= 1的(N-1)
- 2. 求解:T(n)= T(n/2)+ n/2 + 1
- 3. 復發關係T(n)= T(n ^(1/2))+ T(nn ^(1/2))+ n
- 4. 2系列的有效冪:(2^n)+(2 ^(n-1))+(2 ^(n-2))
- 5. 的復發T(N)= 2T(N/2)+(N-1)
- 6. 第(N-2)和第(N-1)的第N個輸出總和
- 7. n = 1 mod 4,(n-1)/ 2-regular?
- 8. 查找THETA:T(N)= T(N ^(1/2))+ 1
- 9. CharField max_length 2^n vs 2^n-1
- 10. Big O - O(N^2)or O(N^2 + 1)?
- 11. 如何找到T(n)= T(n-1)+ n + 2的遞推方程?
- 12. 1 + 1/2 + 1/3 + - + 1/n =?
- 13. 計算總和1+(1/2!)+ ... +(1/N!)
- 14. 如何解決:T(N)= T(N - 1)+ N
- 15. 如何在java中從2^n改爲(2^n + 1)?
- 16. 明確的復發公式:T(n)= 2 * T(n - 1)+ 4^n + 1
- 17. Python數組操作,pi * [n + 1]^2 -pi * [n]^2
- 18. 復發:T(n)=(2 + 1/log n)T(n/2)
- 19. 算法來求解F(N)= 2 *(F(N-1)+ F(N-2))模1000000007
- 20. 如何找到,如果數2^n爲2^1總和 - 2^M
- 21. n *(n - 1)/ 2算法的MySQL架構
- 22. Sublime Text 2 RegEx用n + 1替換n
- 23. 找不到(1 + 2 + ... n)^ 2的總和?
- 24. 如何使用n-1和n + 1進行'添加'功能
- 25. T(N)= T(N-1)+ 10/N
- 26. 如何在for循環(matlab)中壓縮n-1,n-2,...?
- 27. 如何解決復發A(n)= A(n-1)+ n * log(n)?
- 28. 如何n^n b^n其中n> = 1是不規則的?
- 29. 使用n + = 1和n = n + 1之間的區別
- 30. 遞歸的複雜性:T(n)= T(n-1)+ T(n-2)+ C
編譯器可能會優化它們以實現本質上相同的功能。 –
爲這兩個語句打印彙編語言並進行比較。還要比較不同優化級別的彙編語言。 –
@ThomasMatthews當用模糊的兩個冪來修飾時,就像在標題中一樣,是的。 – tofro