位运算符的介绍

位运算符:&、|、^、~、<<、>>

用途:直接操作二进制,省内存,效率高

注意:只能用于整型类操作数(char,short,int,long)


运算规则:

1) & 按位与   同1得1,否则为0:只有对应的两个二进制位均为1时,结果才为1,否则为0


例如:6&3=2

            0110

&         0011

---------------------

            0010


2) | 按位或  有1就1:只要对应的二进制位有1,结果位就为1,否则为0


例如:6 | 3=7

            0110

|           0011

---------------------

            0111


3)^按位异或 不同为1:当对应的二进制位相异,结果位为1,否则为0


例如:6^3=5

            0110

^          0011

---------------------

            0101


4)~ 取反      各二进制位进行取反(0变1,1变0)【符号位也要进行取反运算,要考虑从补码返回原码】


例如:~9=-10

         0  1001

~        

--------------------

         1   0110   (有符号位,所以是补码,要把补码转换成原码。规则:先保持符号位不变,数据位取反,末尾加1) 

         1   1010


5)<< 左移   各二进制位全部左移n位,高位丢弃,地位补0


         1000 1000 0101 0000

  100 0100 0010 1000 0000

------                              -----

砍掉                              补0

             左移三位

        <---------------------

x<<n  :x的所有二进制位向左移动n位,移出位删掉,移进的位补0

左移操作<<:  左移n位相当于  *2^n(乘以二的n次方)


6) >> 右移   各二进制位全部右移n位,保持符号位不变


         1000 0100 0111 1101

         1111 0000 1000 1111 101

        -----                              -----

     补符号位                       砍掉

                 右移三位

            -------------------->

x>>n : x的所有二进制位向右移动n位,移出位删掉,移进的位补符号位

右移操作>>: 右移n位相当于 /2^n(除以二的n次方)


用途:快速计算一个数除以2的n次方,(8>>3 等同于8/2^3)




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值