Java学习笔记(位运算符)

11 篇文章 0 订阅
1 篇文章 0 订阅

位运算符

    位运算符用于处理整型和字符型的操作数。位运算是完全针对二进制位(bit)单位的操作,Java语言提供的位运算符。

说明:Java的位运算符中,非运算“~”是一元运算符,除此之外的都是二元运算符。

1.位移运算

         <<左移。

         >>右移。

         >>>无符号右移。

    左移就是将左移的操作数在内存中的二进制数据左移右边操作数指定的位数,左边移空的部分补0.右移则复杂一些。当使用“>>”符号时,如果最高位是0,右移空的位就填入0;如果最高位是1,右移空的位就填入1

Java还提供了无符号右移“>>>,不管最高位是0还是1,右移空的高位都填入0

注意:移位运算符适用的数据类型有byteshortcharintlong

技巧:移位能实现整数除以或乘以2n次方的效果,如y<<2y*4的结果相同;y>>1的结果与y/2的结果相同。总之,一个数左移n位,就是讲这个数乘以2n次方,一个数右移n位,就是将这个数除以2n次方。

2.“按位与”运算

    “按位与”运算的运算符为“&”,“&”是二元运算符。“按位与”运算的运算法则是:如果两个整数数据ab对应位都是1,则该位结果才是1,否则为0,即

         0&0=0      0&1=0      1&0=0      1&1=1

    例如:6的二进制是1103的二进制是011,这两个数按位与运算的方法如下,括号中的是十进制数。

3.“按位或”运算

    “按位或”运算的运算符为“|”,它是二元运算符。“按位或”运算的运算法则是:如果两个操作数对应位都是0,则该位的结果才是0,否则为1,即

         0|0=0       0|1=1       1|0=1       1|1=1

    例如:6的二进制是1105的二进制是101,这两个数按位或运算的方法如下,括号中的是十进制数。

4.“按位异或”运算

    “按位异或”运算的运算符为“^”,它为二元运算符。“按位异或”运算的运算法则是:当两个操作数的二进制对应位相同(同时为0或同时为1)时,结果为0,否则为1,则

         0^0=0       0^1=1       1^0=1       1^1=0

    例如:6的二进制是1105的二进制是101,这两个数按位进行异或运算的方法如下,括号中的是十进制数。

5.“按位取反”运算

    “按位取反”运算也称“按位非”运算,运算符为“~”它为一元运算符。它的运算法则是:操作数二进制中的1修改为00修改为1,即

         0=1               1=0

    例如:153的二进制是10011001,把它按位取反的结果为01100110.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值