假设:
byte b = (byte)0xF1 ;
那么 System.out.println(b)的结果是 -15 。
我的理由是,1111 0001 ,高位是符号位,所以取反加1等于-15,正确!
-------------------
问题1:
同样的方法,一下却不行了!
byte b = (byte)0xF1 ;
System.out.println(b>>4) ;
依照我上面的理解,应该是 1111 0001 >> 4 == 0000 1111 == 15 !
但是,答案却是 -1 ?
---------------------------------
我想不太明白,求解释 。
【望详细解释,谢谢!】 |
|