点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
一道非常有考验 的基础题,我只想详细的说一下解题过程。
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
二、解题过程
知道了移位操作之后,这道题解答就很容易了。
答案就是4。
0001向左移动两位,得到0100(2的2次方)就是4。
閱讀更多 小鄭搞碼事 的文章
關鍵字: 技术 JavaScript 移位