Java移位运算符详解实例(小结)
移位运算符它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。
运算符
含义
<<
左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>>
"有符号"右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
>>>
"无符号"右移运算符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0
1.左移运算符
左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n位,就相当于乘上2的n次方,例如下面的例子。
publicclasstest{ publicstaticvoidmain(String[]args){ inta=2,b=2,c; c=a<输出结果:8
分析上面代码,2的二进制是00000010,它向左移动2位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2位,其实就是乘上2的2次方,结果还是8
2.无符号右移运算符
右移运算符无符号用“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n位,就相当于除上2的n次方
publicclasstest{ publicstaticvoidmain(String[]args){ inta=16; intb=2; System.out.println("a移位的结果是"+(a>>>b)); } }输出结果:4
分析上面代码:16的二进制是00010000,它向右移动2位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2位,其实就是除以2的2次方,结果还是4
3.带符号的右移运算符
带符号右移运算符用“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1
publicclasstest{ publicstaticvoidmain(String[]args){ inta=16; intc=-16; intb=2; intd=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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。