网站地图    收藏   

主页 > 前端 > javascript >

Javascript 按位取反运算符一些详解

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 给大家介绍一篇Javascript 按位取反运算符文章,希望此文章对大家会有点帮助。...


对一个表达式执行位非(求非)运算。

result = ~ expression

参数

result
任何变量。

expression

任何表达式。

备注

 

所有一元运算符(如 ~ 运算符)都按照下面的规则来计算表达式的值:

•如果应用于未定义的表达式或 null 表达式,则会引发一个运行时错误。

•将对象转换为字符串。

•如果可能,将字符串转换为数字。 否则,将引发运行时错误。

•布尔值被视为数字(如果为 false,则为 0;如果为 true,则为 1)。

运算符将应用于结果数字。

~ 运算符查看表达式的二进制表示形式的值,并执行位非运算。

表达式中的任何一位为 1,则结果中的该位变为 0。 表达式中的任何一位为 0,则结果中的该位变为 1。

下面的示例阐释了位非 (~) 运算符的用法。


var temp = ~5;

所得值为 -6,如下表所示。

表达式

 二进制值(2 的补数)
 十进制值
 
5
 00000000 00000000 00000000 00000101
 5
 
~5
 11111111 11111111 11111111 11111010
 -6
 

下面的示例阐释了位非 (~) 运算符的用法,其中包含二进制表示十进制负数的,如果不熟悉这个请先看懂
var temp = ~5;
/*
5 二进制 101,补满 32位
00000000000000000000000000000101
按位取反
11111111111111111111111111111010
由于32位开头第一个是1,所以这是一个负数,将二进制转换成负数,需要先反码
00000000000000000000000000000101
之后,再+1
00000000000000000000000000000110
转换成十进制为6,加上符号变成负数 -6
*/
alert(temp);
// 弹出【-6】

一些关于位运算

javascript 位运算有7个

&      |      ^      ~      <<      >>      >>>

 

按位与(&)

当两个数相同位都为1时返回1,否则返回0,

例如1&2=0,1的二进制表示为0001,2的二进制表示为0010,二者的运算则返回0000。

0001

0010

-------

0000

得出的就是0了

 

按位或(|)

当两个数只有有一个为1,就为1       2|1=3

0010

0001

-------

0011

得出3了

 

按位非(^)

两个操作数对应位不相同时结果的相应位为1,否则为9^6= 15

1001

0110

-------

1111

得出15了

 

位非(~)

位非运算符“~”实现对操作数按位取反运算,属于单目运算符 

“位非”,顾名思义,对操作数按位取反。   ~7=-8

0111

------            ==========>最前面应该还有一个表示符号的  所以是-8

1000

 

左移(<<)

左移运算符“<<”实现整体向左移动底位补 0 的功能,属双目运算符

15<<2=60

0000 1111

0011 1100

 

左移(>>)

左移运算符“>>”实现整体向左移动底位补 0 的功能,属双目运算符

15>>2=3

0000 1111

0000 0011

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论