JS移位运算符
移位运算就是对二进制进行有规律低移位。移位运算可以设计很多奇妙的效果,在图形图像编程中应用广泛。
“<<”运算符
“<<”运算符执行左移位运算。在移位运算过程中,符号位始终保持不变。如果右侧空出位置,则自动填充为 0;超出 32 位的值,则自动丢弃。
把数字 5 向左移动 2 位,则返回值为 20。
console.log(5 << 2); //返回值20,相当于5*(2的2次方)即5*4
用算式进行演示,如图所示。
“>>”运算符
“>>”运算符执行有符号右移位运算。与左移运算操作相反,它把 32 位数字中的所有有效位整体右移,再使用符号位的值填充空位。移动过程中超出的值将被丢弃。
把数值 1000 向右移 8 位,则返回值为 3。
console.log(1000 >> 8); //返回值3,相当于1000/(2的8次方)即1000/256的向下取整
用算式进行演示,如图所示。
把数值 -1000 向右移 8 位,则返回值为 -4。
console.log(-1000 >> 8); //返回值 -4
用算式进行演示,如图所示。当符号位值为 1 时,则有效位左侧的空位全部使用 1 进行填充。
“>>>”运算符
“>>>”运算符执行五符号右移位运算。它把无符号的 32 位整数所有数位整体右移。对于无符号数或正数右移运算,无符号右移与有符号右移运算的结果是相同的。
下面两行表达式的返回值是相同的。
console.log(1000 >> 8); //返回值3 console.log(1000 >>> 8); //返回值3
对于负数来说,无符号右移将使用 0 来填充所有的空位,同时会把负数作为正数来处理,所得结果会非常大所以,使用无符号右移运算符时要特别小心,避免意外错误。
console.log(-1000 >> 8); //返回值 -4 console.log(-1000 >>> 8); //返回值 16777212
用算式进行演示,如图所示。左侧空位不再用符号位的值来填充,而是用 0 来填充。
转自:http://c.biancheng.net/view/5471.html
推荐这些技术文章:
03-JS运算符
运算符(Operators,也翻译为操作符),是发起运算的最简单形式。
我们将运算符大致进行如下分类:
数学运算符(Arithmetic operators)
比较运算符(Comparison operators)
逻辑运算符(Logical operators)
赋值运算符(Assignment operators)
按位运算符(Bitwise operators)
条件(三...
javascript有不少好用的运算符,合理的使用可以大大提高工作效率,以下简单介绍了4种,具体如下:
&&
逻辑与运算(&&)是 AND 布尔操作。只有两个操作数都为 true 时,才返回 true,否则返回 false。具体描述如表所示:
条件一
条件二
结果
演示
true1
true2
true2
1 && 2 => 2...
">>1"与"/2"的区别 (右移1位运算与除以2运算的区别)
原始数据:N
N:非负数时, >>1和/2的运算结果是一样的。 10>>1=5 ; 10/2=5 0>>1=0 ;0/2=0
N:负数且是偶数,>>1和/2的运算结果是一样的。-10>>1=-5; -10/2=-5
N:负数且是奇数,>>1和/2的运算结果...
问题
请问在JS中是否有办法获取到console.log的值?
最佳回答
写了篇文章:分享一个自定义的 console 类,让你不再纠结JS中的调试代码的兼容
...
使用类做为Dictionary<T,K>的key需什么要求?
问题
<P> </P>
最佳回答
没有要求
...
获得焦点后会触发动画:<p><input type="text" /> <span>focusout fire</span></p><p><input type="password" /> <span>focusout fire</span></p>
$("p").focusi...
一、基本运算符
1.算术运算符:加(+) 减( -) 乘(*) 除(/) 取模(%) 求幂(**)。
(1)%是取模运算符:a % b 按照a 和 b中的长度长的补齐。两个参数都为有符号数结果为有符号数,否则为无符号数;
(2)**是求幂运算符:a**b表示a的b次方,即a表示底数,b表示指数;
...
for(var i=0;i<5;i++){setTimeout(()=>{console.log(i)}, 0)} 的几种解法
第一种 闭包
for(var i=;i<5;i++){
(function(i){
setTimeout(()=>{
console.log(i);
}, 0);
})(i)
}
for (var i = 0; i < 5; i++) {
(() => {
var priv...
int i = 1 i >> 32或者i << 32都等于1,为什么?
问题
int i = 1 i >> 32或者i << 32都等于1,为什么?请问有高手能详细回答下?
最佳回答
i >> n 和 i << n,在 n>=32的时候效果等同于n%32(这很好理解,因为i是int,那么移位操作位数最大就是31,如果这里是long的话那么最大就是63),因此...
expression1 && expression2 如果expression1为false,那么整体结果肯定是false,expression2不会进行运算
||类似&&
expression1 & expression2 无论expression是true还是false,expression2都会运算
|类似&
>> 用符号位填充 ...
文章链接:https://www.dianjilingqu.com/50933.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。