-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