如何将1和2只使用一次的情况下,得到4

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

一道非常有考验 的基础题,我只想详细的说一下解题过程。

JavaScript高级语法书中第二章(语法),第5小节第2点有一个位操作符,位操作符内容中,有一个容易被忽略的知识点,那就是移位

【移位操作】

理解起来似乎不难,但要想到它很不容易。

我来简单解释一下用法,这里会比教科书上的说的简单。

一、概念理解

移位的基本原理是,数字在计算机里都是用32/64位等二进制表示的。

【左移】

比如数字8,二进制我们都知道是1000(2的3次方)。现在我们进行如下操作:

8<<2

1000向左移动两位,最终变成了100000(2的5次方)。

【右移】

右移和右移一样。

8>>2

1000向右移动两位,最终变成10(2的1次方)就是2。

当然,关于移动操作需要特别注意的是:一般情况下移位运算符不改变a的值,除非重新赋值,比如下面这样:

a = a<<2

二、解题过程

知道了移位操作之后,这道题解答就很容易了。

如何将1和2只使用一次的情况下,得到4

答案就是4。

0001向左移动两位,得到0100(2的2次方)就是4。


分享到:


相關文章: