我看过Jason Davies's Word Cloud source on Github 在 index.js 内有一些变量是这样声明的:
cw = 1 << 11 >> 5,
ch = 1 << 11;
我注意到了这个模式:
“<<”之前的值乘以“<<”之后的值;
“<<”之后的值是指定值的 2 次方;
“>>”之后的值(在“<<”之后)除以之前的数字(也是 2 的值的幂);
我很好奇:
一般来说,这种类型的声明有什么用,它来自哪里
它如何为 Jason Davies 布局的其余部分中的代码增加值(value)?
最佳答案
查看此 link
基本上,<<
和 >>
做按位移位。如果你这样做 a << b
, 它将代表 a
作为基数 2(0 和 1)中的数字并将所有数字向左移动 b
职位。这在数学上等同于
a * 2^b
>>
原理相同,只是向右移动。这几乎类似于除以 2,但当初始数字为奇数时存在一种特殊情况:它会降低结果。
⌊(a / 2^b)⌋
如果你有1 << 11 >> 5
, 左移和右移相互抵消,我们在现实中结束了
1 << 6 === 64 === 1 * 2^6
关于Javascript 语法 : variable declaration with "<<" or ">>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38730814/