c/c++的移位運算符
-
在做無符號類型的左移和右移時,空位補0
-
在做有符號位的正數左移和右移時,依然遵循,空位補0
-
但是在做有符號的,負數類型的移位運算時,左移依然遵循空位補0,右移則是負數空位補1,正數空位補0
為什么會出現這種情況?因為計算機采用補碼形式進行存儲,正數的補碼是其本身,負數則是按位取反再加1;為了不影響符號位,出現了上述的情況下,
在做無符號類型的左移和右移時,空位補0
在做有符號位的正數左移和右移時,依然遵循,空位補0
但是在做有符號的,負數類型的移位運算時,左移依然遵循空位補0,右移則是負數空位補1,正數空位補0
為什么會出現這種情況?因為計算機采用補碼形式進行存儲,正數的補碼是其本身,負數則是按位取反再加1;為了不影響符號位,出現了上述的情況下,
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。