Bitwise left and right shift operators << >>

位元移位運算子會移動二進位物件的位元值。 左運算元指定要移位的值。 右運算元指定值中的位元要移位的位置數目。 結果不是 lvalue。 這兩個運算元具有相同的優先順序,並且是由左至右聯合。

操作員 用法
<< 指出要將位元向左移位。
>> 指出要將位元向右移。

每一個運算元都必須有整數或列舉類型。 編譯器會對運算元執行整數提升,然後將右運算元轉換為類型 int。 結果的類型與左運算元相同 (在算術轉換之後)。

右運算元不應具有負值或大於或等於移位表示式的寬度 (以位元為單位) 的值。 這類值的位元移位結果無法預期。

如果右運算元具有值 0,則結果為左運算元的值 (在一般算術轉換之後)。

<< 運算子會以零填滿空出的位元。 例如,如果 left_op 具有值 4019,則 left_op 的位元型樣 (16 位元格式) 為:
0000111110110011
表示式 left_op << 3 會產生:
0111110110011000
表示式 left_op >> 3 會產生:
0000000111110110