今天就跟大家聊聊有关Java中怎么使用移位运算符,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
移位运算符它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。
运算符 | 含义 |
<< | 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0) |
>> | "有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1. |
>>> | "无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0 |
1.左移运算符
左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就相当于乘上2 的n 次方,例如下面的例子。
public class test{ public static void main(String[] args) { int a=2,b=2,c; c=a<<b; System.out.print("a 移位的结果是"+c); } }
输出结果:8
分析上面代码,2 的二进制是00000010,它向左移动2 位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2 位,其实就是乘上2 的2 次方,结果还是8
2.无符号右移运算符
右移运算符无符号用“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n 位,就相当于除上2 的n 次方
public class test{ public static void main(String[] args) { int a=16; int b=2; System.out.println("a 移位的结果是"+(a>>>b)); } }
输出结果 :4
分析上面代码:16 的二进制是00010000,它向右移动2 位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2 位,其实就是除以2 的2 次方,结果还是4
3.带符号的右移运算符
带符号右移运算符用“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1
public class test{ public static void main(String[] args) { int a=16; int c=-16; int b=2; int d=2; System.out.println("a 的移位结果:"+(a>>b)); System.out.println("c 的移位结果:"+(c>>d)); } }
输出结果: 4和-4
分析上面代码:a 的值是16转换成二进制是00010000,让它右移两位成00000100 即4,c 的值是-16转换成二进制是11101111,让它右移一位成11111011 即-4
看完上述内容,你们对Java中怎么使用移位运算符有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。