对于java简单位运算题目的问题,高手给看看

下面是题目。我简写了。
byte a=-128;
byte b=(byte)(a>>128);
为什么b的值是-128???
百思不得其解,求教高手。
。。。汗,那时候真是年少轻狂,什么话都敢乱讲,真丢人。

第1个回答  2008-04-04
这是个循环移位。-128的补码(计算机中的数都是以补码表示的)是
10000000,a>>1结果是01000000,a>>2结果是00100000,…………
a>>7为00000001,a>>8为10000000,又回来了,而128除以8等于16,所以a>>128只是将上述过程重复多次而已。结果当然还是-128。
第2个回答  2008-04-04
其实你补充的很对了,负数右移的时候最高位补1,本来字节只有8位,你右移了128位远远超过范围了,所以现在的8位其实都是补位既11111111这就是-128,而10000001这才是-1.
郁闷了,是我想的简单了?byte本来就8位,移那么多位不是在做无用功吗?反正超出范围的都是斩掉的啊?不是吗?好象没有想的那么复杂吧?
我也蒙了,惭愧死列
第3个回答  2008-04-03
>>右移 位运算符,
byte是8位
右移128位你说是什么?不还是等于没移动嘛!
128是8的倍数吧,你算算本回答被网友采纳

java位运算符问题。x=4.y=2,求Z. (1)Z=~X (2)Z=<<Y (3)Z=>>>Y_百度...
(1)-5 (2) 4 (3) 1

Java中位运算,如图
1、正数的补码 = 原码 2、负数的补码 = 原码的反码 + 1 3、负数的原码 = 补码的反码 + 1 4、 负数的求反,符号位不变 第一个问题:-126在计算机中以补码形式存在,所以右移后的1100 0001依旧是补码 第二个问题:参照上面的第3条规定 ...

常常遇到“位”的问题,请哪位高手详细讲解一下电脑中位的概念...
Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。表4-2 列出了位运算:运算符 结果 ~ 按位非(NOT)(一元运算)& 按位与(AND)| 按位或(OR)^ 按位异或(XOR)>> 右移 >>> 右移,左边空出的...

一个Java问题: int a = 5, b = 8; System.out.println(a|b...
5=0101 8=1000 所以:A | B=5 | 8= 0101 | 1000=1101 1101转换成十进制就是13..楼主去理解一下或运算。

java中:-4<<2怎么算的。 -4321>>>30这题有什么简单算法没有?_百度知 ...
>>>运算规则:按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。其他结构和>>相似。小结 二进制运算符,包括位运算符和移位运算符,使程序员可以在二进制基础上操作数字,可以更有效的进行运算,并且可以以二进制的...

Java入门中,问题:对于两个int类型变量 int m=120,n=240; 那么,m^m和...
^异或运算符号,相同为0,不同为1。需要对数字转换成二进制数后进行按位运算。但是,出题人明显不是让你把120和240转换成二进制,你会哭的。异或有特点的:1.一个数和自己异或,那结果一定是0啊。因为每个位都一样。2.如果x^y=z 那么x^z=y y^z=x 所以第二题的答案是120 ...

java中位运算符,(byte) 0x80 的那个,为何答案是-32
所以,0x80 本来是整数的 128,二进制 00000000000000000000000010000000 (Java 中整数4个字节32位)。(byte)0x80,将其转换为 byte,即截取最后 8 位,即 10000000,就是 byte 中的 -128。>> 表示右移操作,右移一位表示除以 2。(byte)0x80 >> 2,表示将(byte)0x80右移两位,那么就是 -128...

java 面试题目 用最有效率的方法算出2乘以8等於几?
就是16丫。x<<y的功能就是把x的二进制编码左移y位。2的二进制编码是10,左移3位得到10000,转换为十进制就是16。

Java中位运算,对整数5按位取反怎么算
转二进制取反得到的也是-6 你再把它转成10进制数就能看到结果了 5(2) = 101 2(2) = 010 &是安位与,两个都是1才得1 所以上面5和2对应1的位数刚好叉开了,&后得到000,也就是0了

java初级面试题目?
对于新人,面试中基础问题会问道很多,因为先要考察这个人的基础。 关于基础类的题目,我在面试初级java工程师的时候一般会问下面两大类问题,每类5个题目,这样下来我就基本可以了解这位工程师的程度了。 java基础类 面向对象基础类 java基础类 1.描述一下java的访问修饰符,和它们之间的区别? 回答:如果可以回到出...

相似回答