移位运算符详解

以下所说都为有符号数!

>>运算符:

  • 将位右移,高位用符号位填充
  • .移位运算符的右操作数要完成模32的运算(除非左操作数是long类型,在这种情况下需要对右操作数模64).

举例:

33>>3  结果为4.

33>>35 结果为4

-33>>3 结果为-5

-33>>35 结果为-5

<<运算法:

  • 将位左移,低位补0.(就算是byte类的数左移,也会当做32位的处理)
  • 移位运算符的右操作数要完成模32的运算(除非左操作数是long类型,在这种情况下需要对右操作数模64).
  • 符号位照样会被左移数占据,所以正数左移可能为负数,负数左移也可能为正数.

举例:

33<<2 结果为132

33<<35 结果为132

33<<26 结果为-2080374784

-33<<2 结果为-132

-33<<35 结果为-132

-33<<26 结果为2080374784

注意:负数一定要换成补码再移位,因为负数在计算机中是以补码存储.

至于为什么会在我的另外一篇博客有介绍  https://blog.csdn.net/qq_36470686/article/details/82907434

猜你喜欢

转载自blog.csdn.net/qq_36470686/article/details/82906420
今日推荐