windows web Linux的位移操作

2021-10-10 19:39:15 字數 1146 閱讀 6019

左移32位,a為1。左移33位,a為2。

int main()

rack=1,左移32位:編譯時有警告:left shift cout >=width,但執行結果為1。

左移33位,結果為2。

結果:和windows保持一致。

rack=1,左移32位:編譯時有警告:left shift cout >=width,執行結果為0

左移33位,執行結果為0。

結果:和linux不一致

1. windows平台位移實際上是移動(n%32),而web平台是高/低位補0;

2. web平台rack左移32位後(32位編譯器unsigned int:32),列印為0,邏輯判斷rack不為0;若左移後進行位或,rack變為0xffffffff。編寫左移+位或demo這個問題並沒有得到復現。

3. 為何加了列印/usleep,rack就等於0,位或結果也正確(原因待查,可能和編譯器機制有關)。

4.總之,在進行位移時,使用

rack<<=(n%(sizeof(n)*8))」代替「

rack<<=n」,使得

windows平台和

web平台運算結果一致。

*注意

*:在該使用場景中,左移

32位目的是讓其為

0,後面可加上相等判斷,

windows

web都可為

0

位移的單位符號 位移感測器符號

位移感測器符號光電式位移感測器 消除了機械接觸,壽命長 可靠性高,缺點 數碼訊號輸出,處理煩瑣。磁致伸縮式位移感測器 磁致伸縮位移 液位 感測器,通過內部非接觸式的測控技術地檢測活動磁環的位置來測量被檢測產品的實際位移值的。位移感測器接線原理圖 鎮江嘉倍 瑞士奇石樂kistler壓力感測器 kist...

計算中的位移

位移運算的場景 高低位擷取 雜湊計算 乘除法運算 在實際程式設計中位移運算僅作用於整型 32位 和長整型 64位 數上 按位操作是直接操作記憶體,效率高。1 向右移動一位近似表示除以2,但是十進位制的奇數轉化為二進位制數後,在向右移動時,最右邊的1將被直接抹去,這說明向右移動對於奇數來說並非完全相當...

算術位移的溢位判斷

溢位判斷 以下的 出錯 就是溢位 以下討論的是算術右移或者算術左移的情況下溢位判斷 對於正數 原碼 補碼 反碼 不論左移還是右移都是丟1出錯 對於負數 個人判斷方法 先判斷正負,正數就按正的來,丟1出錯,如果是負數再判斷是原碼還是補碼或者是反碼,如果是原碼左移右移都是丟1溢位,反碼左移右移都是丟0溢...