-1
A
回答
2
如果我們把問題分成幾個步驟,就很容易了。我將首先解釋這個問題,任何達成這個問題的人都會明白這一點。最後,你可以看到提到你的問題。
開始:
$v = 4;
首先,我們檢查了多少位需要該值。
echo decbin($v); // 3 bits (100)
然後,我們就離開兩個接班:
echo $v << 2; // the value is now 16. Why?
,因爲如果我們檢查位:
echo decbin($v << 2); // 5 bits (10000) -> the previous 3 bits + 2 shifted
// /\ check that there are more 2 bits now
但我們正在32
的結果, 這是爲什麼?那麼,因爲在這種情況下,+
第一。它首先評估總和(2 + 1),然後才轉移。您的代碼與4 << (2 + 1)
相同。
如果我們像以前一樣檢查步驟,但是知道它將首先求和,它實際上會將它拉高3,使最後一個值有6位。
而且,如果我們將被移位了3的值(100000)轉換,我們得到32
。
相關問題
- 1. 按位運算符左移
- 2. 按位運算符
- 3. 在PHP中按位運算?
- 4. 瞭解按位運算 - 移位和AND
- 5. Python中的左移運算符
- 6. JavaScript和按位運算符
- 7. 按位'&'運算符on uint
- 8. 按位餘數運算符
- 9. 按位不運算符
- 10. Haskell按位運算符Data.Bits
- 11. C++'>'按位運算符
- 12. 按位補運算符
- 13. 如何在android中的按鈕上顯示左移運算符?
- 14. 負位數移位的位移符號運算符
- 15. PHP按位左移32位問題,並有大量的算術運算壞的結果
- 16. 按位算術和運算符
- 17. C++按位左移32
- 18. 按位運算
- 19. 位運算,移動進位
- 20. PHP等效javascript >>>右移零填充按位運算符?
- 21. PL/SQL中的移位運算符
- 22. 使用位移運算符的錯誤
- 23. C#移位運算符過載
- 24. 關於C++中的移位運算符
- 25. 位移及其邏輯運算符
- 26. 使用左移位和按位或
- 27. 如何在二進制中應用按位右移運算符?
- 28. C#中是否存在「增量按位移運算符」?
- 29. Java中的按位移運算符:語法錯誤「= >>」?
- 30. 不同平臺下的按位移運算符(windows,mac os,android)
請參閱:http://stackoverflow.com/q/3737139/3933332和http://php.net/manual/en/language.operators.precedence.php – Rizier123
這與'(4 <<(2) + 1))':[https://eval.in/614829](https://eval.in/614829)。 – FirstOne
請不要在問題中發佈答案作爲編輯;)。我已經爲你發佈了一個答案^^(我很快會刪除這條評論) – FirstOne