黑马程序员_java入门_位运算

.------- android培训、java培训、期待与您交流! ----------

 一 s=s+4和s+=4的区别

如果S属于int型,那么s=s+4与s+=4没有区别,但是如果s属于short型,那么s+4中s会因为4强转为int型,而无法赋值给short型的s所以不行,要强转,则会出现两步完成,而s+=4内部机制可以一次性完成。

 

二 位移运算

>>右移运算  6>>2=6/2^2=1

<<左移运算  3<<2=3*2^2=12

无符号右移

>>> 移动后最高位补0

 

如果是有符号移动,最高位是补符号位

 

&与运算(and)(相同为1,不相同0)

|或运算(or)(都为假才为假)

^异或运算(XOR)(相同为假不同为真)

&&双与 (左边为假,右边不运算)

||双或(左边为真,右边不运算)

一个数两次异或同一个数,结果还是那个数(7^5^5=7)

举例2*8

可以写成 2<<3

三 进制的转换

6的二进制是

0000-0000 0000-0000 0000-0000 0000-0110

-6的二进制是,取反再加1

先取反1111-1111 1111-1111 1111-1111 1111-1001

+         0000-0000 0000-0000 0000-0000 0000-0001

------------------------------------------------------------------------

           1111-1111 1111-1111 1111-1111 1111-1010=-6

 

 

 

你可能感兴趣的:(黑马程序员_java入门_位运算)