java如何使用移位运算符_JAVA移位运算符使用教程

位运算符用来对二进制位进行操作,分为左移位操作和右移位操作。

左移位运算符

●左移位运算的符号为<

●特点

◆是双目运算符。

◆操作元必须是整型类型的数据。

●左位移的过程

◆假设a是一个被移位的整型数据,n是位移量。

◆a<

◆比如:对整形数 8<<1的计算

8的二进制表示: 0000,0000,0000,0000,0000,0000,0000,1000

左移一位的结果:0000,0000,0000,0000,0000,0000,0001,0000

●注意

◆左位移操作是对整型数的操作,操作符两边必须是整型。

◆比整型更小的数据类型数据将被转换成整型进行运算,比整型更大的数据类型数据是不能进行移位运算的。

◆比整型更小的数据类型数据将被转换成整型时:对于正数将高位用0填充;负数将高位用1填充。

◆例:

byte a = -8;

System.out.println(a<<2);

结果:-32

1111,1111,1111,1111,1111,1111,1111,1000

1111,1111,1111,1111,1111,1111,1110,0000

◆在进行a<

★如果a是byte、short或int型数据,系统总是先计算出n%32的结果m,然后进行a<

★对于long型数据,系统总是先计算出n%64的结果m,然后进行a<

★比如:

对于int数 5<<1与5<<33的结果相等;

对于long数 5<<1与5<<65的结果相等。

右移位运算符

右移位运算的符号为>>,右移位运算符左面的操作元称作被移位数,右面的操作数称作移位量。

●特点

◆是双目运算符。

◆操作元必须是整型类型的数据。

●右位移的过程

◆假设a是一个被移位的整型数据,n是位移量。

◆a>>n运算的过程是通过将a的所有位都右移n位,每右移一个位,右边的最低位(即右边的第1位)上的0或1被移出丢弃,并用0或1填充左边的高位(a是正数时用0填充,负数时用1填充)。

◆比如:对整形数 8>>1的计算

8的二进制表示: 0000,0000,0000,0000,0000,0000,0000,1000

右移一位的结果:0000,0000,0000,0000,0000,0000,0000,0100

●注意

◆右位移操作是对整型数的操作,操作符两边必须是整型。

◆比整型更小的数据类型数据将被转换成整型进行运算,比整型更大的数据类型数据是不能进行移位运算的。

◆比整型更小的数据类型数据将被转换成整型时:对于正数将高位用0填充;负数将高位用1填充。

◆例:

byte a = -8;

System.out.println(a>>2);

结果:-2

1111,1111,1111,1111,1111,1111,1111,1000

1111,1111,1111,1111,1111,1111,1111,1110

◆在进行a>>n运算时

★如果a是byte、short或int型数据,系统总是先计算出n%32的结果m,然后进行a>>m运算。

★对于long型数据,系统总是先计算出n%64的结果m,然后进行a>>m运算。

★比如:

对于int数 5>>1与5>>33的结果相等;

对于long数 5>>1与5>>65的结果相等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值