位运算符

        今天和同学讨论负数为什么要用补码表示,被嘲笑一波,说是计算机组成原理的基础知识,我尴尬不失礼貌的说,不好意思,我没有学计算机组成原理。当然了,没学不是借口,以前不会,碰到了,就要理解,记住。最近在刷LeetCode的时候,经常碰到位运算的题目,一开始是拒绝的,总是跳过跳过,我学习方法里面是有这个习惯,遇到不会的,我不想花时间去理解,去消灭它,我想这就是为什么我一直这么菜的原因吧。

        回到正题。在java中,支持的位运算有如下七个。

        1.&:按位与     

        2. |:按位或

        3. ~:按位非

        4.^按位异或

        5.<<:左移运算符

        6.>>右位运算符

        7.>>>无符号右移运算符

对于&,都为1则为1,都为0则为0。对于|,有1就为1,对与^,两个相同则为0,不同为1

按位非只需要一个操作数,这个运算符是将操作数在计算机底层的2进制码按位取反

1.左移运算符是将运算数的二进制整体左移制定位数,左移后右边空出来的位以0来填充(对于5<<1,其实是可以理解5乘以2的)

2.java 的右移运算符右两个,>>和>>>,对于>>运算符而言,把第一个操作数的二进制右移指定位数。左边空出来的位以原来的符号来填充,如果第一个操作数是正数,则左边补0,如果第一个操作数,则左边补1,>>>是无符号运算符,它把第一个操作数的二进制右移指定位数后。左边空出来的总是以0来补充。如(5>>1),其实可以理为5/2.)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值