Javascript 语法 : variable declaration with "<<" or ">>"

标签 javascript algorithm d3.js word-cloud

我看过Jason Davies's Word Cloud source on Githubindex.js 内有一些变量是这样声明的:

cw = 1 << 11 >> 5,
ch = 1 << 11;

我注意到了这个模式: “<<”之前的值乘以“<<”之后的值;
“<<”之后的值是指定值的 2 次方;
“>>”之后的值(在“<<”之后)除以之前的数字(也是 2 的值的幂);

我很好奇:

  1. 一般来说,这种类型的声明有什么用,它来自哪里

  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/

相关文章:

javascript - 从 jQTouch/Phonegap iPhone 应用程序发布 Twitter 和 Facebook 更新

javascript - 隐藏 html 页面中的某些字段以用于打印布局中的页眉/页脚

javascript - 在 sails.js 中保存用户

c++ - 如何生成给定长度的字典字符串?

javascript - 删除事件监听器

algorithm - 半音阶乐器调音器的稳健算法?

algorithm - 取货和投递问题算法帮助

javascript - 使用时间刻度为第一个和最后一个数据点创建填充

javascript - d3 : multiple lines same graph with varying y domains?

javascript - 使用 browserify bundle D3 库的问题