位运算符/三元(目)运算符

一、位运算符

【转换成二进制进行运算】

1.定义

	&   与      都为1结果为1
	|   或      只要有1结果为1
	^   异或    相同为0不同为1
	~0110
	>>  右移
	<<  左移

2.非运算

  ~正数  ~n=>	-(n+1)		
      ~负数 (|n|-1
		console.log(3&2)    //2	
【转化为二进制数011 & 010———>	相同为1,不同为0——> 010=>2】		
		console.log(3|2)    //3
		011 | 010==>011=>3
		console.log(3^2)    //1
		console.log(~3)     //-4011——>(取反)100——>减一011——>再取返100  变符号位】
		console.log(~25)     //-
11001 00110 00101*** 11010
		console.log(25&3)       //1
		console.log(25|3)       //27
		console.log(25^3)       //26
		console.log(~25)        //-24
		console.log(~(-27))     //26
		console.log(64>>5)      //2
		console.log(255&85)     //85
	js  数值类型——6432位    最高位:符号位
	 1818 ————10010
	00000000 00000000 00000000 00010010     18
	11111111 11111111 11111111 11101101      取反
	11111111 11111111 11111111 11101110      加一:逢21
	
	****
	~18-19
	00000000 00000000 00000000 00010010
	11111111 11111111 11111111 11101101   ~11111111 11111111 11111111 11101100   减一
	00000000 00000000 00000000 00010011   取反  19
	                                      加负号 -19
	****
	左移<<
	2<<5    向左移动500000000 00000000 00000000 00000010     //2
	000 00000000 00000000 0000001000000         //左移5位,空出低位补0
	-2<<5
	11111111 11111111 11111111 11111101    取反
	11111111 11111111 11111111 11111101     加一
	111 11111111 11111111 1111110100000     左移5000 00000000 00000000 00000001000000   
>>右移  有符号右移
>>>右移 无符号右移

64>>5
00000000 00000000 00000000 01000000     64
0000000000000 00000000 00000000 010     右移动,高位补0

-64>>5
00000000 00000000 00000000 01000000 
11111111 11111111 11111111 10111111     取反
11111111 11111111 11111111 11000000     -64
1111111111111 11111111 11111111 110     有符号右移看符号位如为1,补1

1111111111111 11111111 11111111 101     减一
0000000000000 00000000 00000000 010     取反    //-2

-64>>>5  无符号右移
    11111111 11111111 11111111 11000000     -64
    0000011111111 11111111 11111111 110     无符号右移,不看符号位,高位全补0
13>>2
1011
    00000000 00000000 00000000 00001011 
    0000000000 00000000 00000000 000010     //2

-13<<2
    00000000 00000000 00000000 00001011
    11111111 11111111 11111111 11110100         取反
    11111111 11111111 11111111 11110101         加一
    111111 11111111 11111111 1111010100         左移,地位补0
    111111 11111111 11111111 1111010011         减一
    000000 00000000 00000000 0000101100         取反 //***44

9<<4
    00000000 00000000 00000000 00001001
    0000 00000000 00000000 000010010000     //144

255&85

二、三元(目)运算符

        a=10
        if(a>0){
            alert("yes")
        }else{
            alert("no")
        }

   a>0?alert("yes"):alert("no")
   c=a>0?alert("yes"):alert("no")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值