在java中>>>和>>是做什么用的,是移位吗? 我在看别人的程序中看到的,ob[0] = Digit[(ib >>> 4) & 0X0F],(b2iu(input[j + 1]) << 8),i >>>= 8,我只考的其中的几句,整个程序太长了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能具体解释一下吗?>>,>>>,>>>=分别的作用 “>>”是普通的右移。例如:b=a>>8;“>>>”是无符号右移。仍然类似:b=a>>>8;带有“=”的和“+=”类似,形式是:a>>=8; i = 50;System.out.println(Integer.toBinaryString(i)); /* i的2进制表示 */System.out.println(Integer.toBinaryString(i>>1)); /* >>右移位运算符:二进制数字整体向右移动(1)位,相当于去掉最末尾数字 */System.out.println(Integer.toBinaryString(i>>>1)); /* >>>无符号右移位运算符:与>>基本相似 */ >>是有符号右移操作符,若符号为正则在高位插入0,或符号为负则在高位插入1。>>>是无符号右移操作符,无论正负,都在高位插入0。>>>=使用时,会将操作符左边的值会移动由右边的值指定的位数,再将得到的结果赋给左边的变量。但如果对byte或short值进行这样的位移运算,得到的可能不是正确的结果。它们会先被转换成int型,再进行右移操作,然后被截断,赋给原来的类型,在这种情况下可能得到-1的结果。例:byte b = -1;System.out.println(Integer.toBinaryString(b));b >>>= 10;System.out.println(Integer.toBinaryString(b));其输出的结果:1111111111111111111111111111111111111111111111111111111111111111这显然不是我们想要的。 >> 和>>>在对正数进行移位的效果是一样的,但是对于负数的话>>移位完成之后高位空出会添1,而>>>会添0 请问错在哪里呢? 高手们帮帮忙!急用!! 有关JAVA 3D的入门的请教 请教一个空值问题 求教:一个正则表达式的写法 JPanel.setLayout(null)之后…… 构造函数不是没有返回值的吗?怎么我加上返回值也能运行? 关于捕捉Exception!!!急!!! 在Applet中画图的问题,高分相送!!!!!! 说白了,就是白送呀,靠 请问如何在Applet打开的JFrame中再打开一个JFrame,让它总是显示到桌面最前面呢? 怎样把字符串0.30f,0.70f 以逗号split开,然后存入float[]数组
“>>>”是无符号右移。仍然类似:b=a>>>8;
带有“=”的和“+=”类似,形式是:a>>=8;
System.out.println(Integer.toBinaryString(i)); /* i的2进制表示 */
System.out.println(Integer.toBinaryString(i>>1)); /* >>右移位运算符:二进制数字整体向右移动(1)位,相当于去掉最末尾数字 */
System.out.println(Integer.toBinaryString(i>>>1)); /* >>>无符号右移位运算符:与>>基本相似 */
>>>是无符号右移操作符,无论正负,都在高位插入0。
>>>=使用时,会将操作符左边的值会移动由右边的值指定的位数,再将得到的结果赋给左边的变量。但如果对byte或short值进行这样的位移运算,得到的可能不是正确的结果。它们会先被转换成int型,再进行右移操作,然后被截断,赋给原来的类型,在这种情况下可能得到-1的结果。
例:
byte b = -1;
System.out.println(Integer.toBinaryString(b));
b >>>= 10;
System.out.println(Integer.toBinaryString(b));
其输出的结果:
11111111111111111111111111111111
11111111111111111111111111111111
这显然不是我们想要的。