Bitwise left and right shift operators << >>
位元移位運算子會移動二進位物件的位元值。 左運算元指定要移位的值。 右運算元指定值中的位元要移位的位置數目。 結果不是 lvalue。 這兩個運算元具有相同的優先順序,並且是由左至右聯合。
| 操作員 | 用法 |
|---|---|
| << | 指出要將位元向左移位。 |
| >> | 指出要將位元向右移。 |
每一個運算元都必須有整數或列舉類型。 編譯器會對運算元執行整數提升,然後將右運算元轉換為類型 int。 結果的類型與左運算元相同 (在算術轉換之後)。
右運算元不應具有負值或大於或等於移位表示式的寬度 (以位元為單位) 的值。 這類值的位元移位結果無法預期。
如果右運算元具有值 0,則結果為左運算元的值 (在一般算術轉換之後)。
<< 運算子會以零填滿空出的位元。 例如,如果 left_op 具有值 4019,則 left_op 的位元型樣 (16 位元格式) 為:0000111110110011表示式
left_op << 3 會產生:0111110110011000表示式
left_op >> 3 會產生:0000000111110110