位操作符

Posted 一脚一个坑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作符相关的知识,希望对你有一定的参考价值。

所有数值都是转化为二进制机器码保存在内存中。

负数同样以二进制码存储,但使用的格式是二进制补码。但是显示给我们的是一个负号和这个数值绝对值的二进制码。计算一个二进制的补码需要三个步骤:

1.求这个数值绝对值的二进制码;

2.求二进制反码,即是讲0替换成1,1替换成0;

3.得到的二进制反码加1。

按位非(NOT)

var num1 = 25;    //    0000000**00011001

var num2 = ~num1;  //111****11100110

alert(num2);            //-26

这里,对25执行按位非操作,结果得到了-26。这也验证了按位非操作本质:操作数的负值减1.因此,下面的代码也可能得到相同的值。

var num1 = 25;

var num2 = -num -1;

alert(num2); //-26

按位与(AND)

以上是关于位操作符的主要内容,如果未能解决你的问题,请参考以下文章

Java的按位操作符

Java的按位操作符

浅谈JavaScript位操作符

32位、64位操作系统有什么区别?

在 32 位操作系统上运行 64 位 jvm

位操作符和位运算