問題

據我所知,當你在C中使用左移位位運算子時,它保證空位將填充0.但是,我已經讀過右移是依賴於實現的,這意味著在某些機器中空位將填充0,在另一些機器中它們將填充1s.

我在程式中使用正確的移位,實際上我的機器正在填充空位1s.問題是我需要它來填充0.

有沒有辦法強制0在正確的轉移時使用?

一個解決方案是,在應用正確的移位之後,建立一個像01111111這樣的掩碼,然後應用一個位AND,它將更改插入到0的最左邊的1.

但這很麻煩,浪費時間.如果有辦法告訴我的機器用1s填充正確的移動,那將會更容易.

謝謝

  最佳答案

將數字轉換為 unsigned,然後轉移。

  相同標籤的其他問題

cbitwise-operators