<<,>>(有符號位移)和>>>(無符號位移)的使用方法,及差別


<<  ——  有符號左移

>>  ——  有符號右移

<<<  ——  無符號左移

>>>  ——  無符號右移

無符號移位(>>>)和有符號移位(>>)的區別是:

有符號位移運算時如果數字為正數時位移后在前面補0,為負數時則在位移后在前面補1

例:

100<<2

4的二進制為

0110  0100

移除最后兩位

0110  01

在前面補兩個零

0001  1001

100>>2==25

無符號移位運算時(>>>)如果數字為正數時移位后在前面補0,若為負數時移位后在前面補1

100>>>2

100的二進制是

0110  0100

向右移2位后為

0110  01

在前面補0得二進制為

0001  1001

100>>>2==25

 

如果為-100

-100的二進制為

1111111111111111111111111111111111111111111111111111111111111100

移除最后兩位后

11111111111111111111111111111111111111111111111111111111111111

之后在前面補兩位

1111111111111111111111111111111111111111111111111111111111111111

-100>>>2==-1

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com