各位高手,我在一本书上看的关于右移运算符>>对最高位(最左边)的操作是:最高位则移入原来高位的值.并举例如a=11010011, 则 a>>2=11110100.而另一本书上说,最高位应补零,既a>>2=00110100,我认为后者对.请各位于以指正.
解决方案 »
- 一个关于类的问题,百思不得其解,多了一句输出就对了,高手来看看
- 小程序不知道哪里出错
- String按位截取问题
- java中的type是干什么的?
- com.microsoft.sqlserver.jdbc.SQLServerException: INSERT 语句与 CHECK 约束"CK__stud__s
- 静态内部类问题
- window.open("xx.jsp")这样是开了一个新线程么?
- 请教各位大哥!怎么用数据库控制Applet画曲线啊!
- 请问 是否 SQL Server 2000 JDBC驱动程序是不是 载sql server7.0就不能用
- servlet取jsp中的参数,为什么有时候取得到,有时候取不到呢?我的代码是这样。。。
- 网线断开判断
- Vector 排序问题
而JAVA特有的>>>是无符号的移位符,它就是只把高位填0的
一定要区分清楚
若a=10000011,则 a>>2=11100000.
用来将一个数的各二进制位全部右移若干位.例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值.
如:a = 00110111,则a>>2=00001101,b=11010011,则b>>2 = 11110100
右移一位相当于除2 取商,而且用右移实现除法比除法运算速度要快无符号右移运算符>>>
用来将一个数的各二进制位无符号右移若干位,与运算符>>相同,移出的低位被舍弃,但不同的是最高位补0,如a = 00110111,则a>>>2 = 00001101,b=11010011,则b>>>2 = 00110100所以,,你上面第一种是右移,第二种是无符号右移