tft每日頭條

 > 生活

 > 二進制減法運算方法

二進制減法運算方法

生活 更新时间:2024-07-01 09:57:31

二進制數的移位運算有兩種:左移<< , 右移>>

1、左移運算 <<:

  • a<<b,表示将二進制數a整體向左移動b位,右邊的b位用0補充。

例如 :00000100<<2 =00010000

二進制100是十進制數4,左移2位得到10000為十進制數8。

  • 若左移時舍棄的高位不包含1,那麼每左移一位,相當于該數乘以2。a << b的值實際上就是a乘以2的b次方,因為在二進制數後添一個0就相當于該數乘以2。
  • 通常a<<1比a*2更快,因此程序中乘以2的操作可以用左移一位來代替。

2、右移運算符>>

  • a>>b,表示将二進制數a整體向右移動b位。
  • 右移運算分為兩種:邏輯右移和算術右移

(1)邏輯右移,在右移過程中,左邊位用0填充。

例如 :00001100>>2 =00000011

對于有符号數00001100十進制數12,邏輯右移2位,左邊用0填充,變成了:00000011十進制數3。

(2)算術右移,在右移過程中,左邊用符号位來填充。

例如 :10000100>>2 =11100001

00000100>>2 =00000001

對于有符号數10000100,算術右移2位,左邊用1(1為符号位)填充,變成了:11100001。

而對于有符号數00000100,算術右移2位,左邊用0(0為符号位)填充,變成了00000001。

  • 在C語言中,右移運算符為算術右移運算符,即左邊用符号位來填充。
  • 若右移時高位不是1(即不是負數),舍棄的低位不包含1,那麼操作數每右移一位,相當于該數除以2,a>>b的值相當于a除以2的b次方(取整)。我們也經常用>> 1來代替除以2,用>>代替除法運算可以使程序效率大大提高。

總結

  • 無論左移還是右移,都需要用0或者1去填充移動之後的空位。
  • 在左移的過程中,右邊一律用0去填充。
  • 右移分為邏輯右移和算術右移。左補0還是補1得看被移數是正還是負。
  • 将一個數左移n位相當于将一個數乘以2^n,而将一個數右移n位相當于将這個數除以2^n。

常見二進制數移位的變換操作

二進制減法運算方法(二進制的移位運算)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved