运算符 >>

>>1  这个就是 除以2

 

比如 10>>1  是 5

         15>>1 是7

 

>> 这个就是右移

<< 这个是左移

>>>无符号左移  

没有<<<这个东西

 

&  换成二进制后,2个都是1的时候才是1,否则是0  比如 12|5 =>4      1100&0101 ---》0100  ===>4

 换成二进制后,只要是1个是1,就是1,如果2个都是0的话,那就是0    比如  12|5 =>13    1100| 0101   --> 1101   这个换成10进制是13

换成二进制后   2个不同才是1,相同是0          比如 12|5 =>4      1100^0101 ---》1001  ==>9 

~ 换成二进制后 取反 ,然后在进行取补码,取补码怎么取呢? 、

 比如 ~12     : 1100   比如我是32位系统

                               00000000 0000000 00000000 00001100

                        取反11111111   1111111  11111111   11110011

                        补码10000000 00000000 00000000 00001100

                        +1   10000000 00000000 00000000 00011101  这个就是最后得到的值 -13 ,所以~12 就是-13

 

 

对于原码。就是当前数字的二进制表现形式,如-1的原码是1000 0001。

对于反码,正数的反码就是本身。负数的反码是二进制保留符号位。剩余位取反,比如-1的反码是1111 1110;

对于补码,正数的反码、补码、原码都是一样的,负数的补码是在其反码的基础上+1,比如-1的补码是1111 1111。

 

             

 

posted @ 2018-04-09 10:57  tangw  阅读(1102)  评论(0编辑  收藏  举报