逻辑右移(>>>),无论什么时候都在左填0。而算术右移(>>)则在左填符号位,符号位若为0则与逻辑右移结果一致,符号位为1则不一致。
>>这个是带符号右移
>>>这个是无符号右移
-1的二进制反码表示为 11111111 11111111 11111111 11111111
-1>>1的结果是 : 1111111 1111111 11111111 1111111
-1>>>1的结果是: 01111111 11111111 1111111 11111111
无符号右移后前面补0,而带符号右移是补符号位,也就 是第一位,负数补1,正数补0
Java的优点:
java是纯面向对象编程的语言;
平台无关性 (一次编译,到处运行;Write Once,Run Anywhere);
java提供了许多内置的类库,通过这些类库,简化了开发人员的设计工作,同时缩短了项目开发时间;
提供了对Web应用开发的支持,例如,Applet,Servlet,和JSP可以用来开发Web应用程序,Socket,RMI可以用来开发分布式应用程序的类库。
首先纠正一个错误哈..>>是带符号右移
>>>才是无符号右移..
带符号右移就是将那个数转为2进制然后在前面补0或1
如果是正数就补0
负数补1
例如11
>>
2,则是将数字11右移2位
计算过程:
11的二进制形式为:0000
0000
0000
0000
0000
0000
0000
1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000
0000
0000
0000
0000
0000
0000
0010。转换为十进制是2。
其他的
到网上一搜就有了。。
无符号右移与带符号右移的区别就是
无符号始终补0