关于位操作符

        18的二进制为10010
         -18的二进制为:
        先每位取反: 01101 = 1101
        再给最后一位加1:1110

按位非(~):

let num1 = 25;
let num2 = ~num1;      //num2为-26

也就是按位非操作符是数值取反再减一

按位与(&):

let result = 3&5        //result = 1

3 = 0 1 1

5 = 1 0 1

只有二进制两个都是1时才会返回1,所以3&5会返回 0 0 1

如果是:

result = 2&3

2 = 1 0

3 = 1 1

那result就是2,结果为1 0。

按位或(|):

参照(&)只要有一个是1就返回1,否则返回0;

按位异或(^):

参照(&)只能有一个是1才会返回1,否则返回0;

左移(<<):

let v = 2         // 1 0

let nv = v<<5        //表示将v向左移5位,即 1 0 0 0 0 0 0 ,值为 64

有符号右移(>>):

同左移

let v = 64;

let nv = v>>5        // 2

有符号右移会把0加在符号位之后

无符号右移(>>>):

let v = -64        //11111111111111111111111111000000

let nv = v>>>5        //00000111111111111111111111111110 =  134 217 726

无符号右移会把0直接加在左边,不管符号位是什么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值