C 中的 << 和 >> 是位移運算符,分別用於位元左移和位元右移整數。左移運算子 (<<) 將整數的二進位表示向左移動,空位以符號位元或 0 填滿。右移運算子 (>>) 將整數的二進位表示向右移動,空位以符號位元或 0 填滿。
C 中<< 和>> 的區別
C 中的<< (左移運算子)和>>(右移運算子)是位元運算符,用於位元平移有符號整數或無符號整數。它們之間的主要區別在於移動方向。
左移運算子 (<<)
左移運算子 << 將整數的二進位表示向左移動指定位元數。當整數為有符號整數時,空出的位元以符號位元填入(正數為 0,負數為 1);當整數為無符號整數時,空出的位元以 0 填滿。
右移運算子 (>>)
右移運算子 >> 將整數的二進位表示向右移動指定位數。對於有符號整數,符號位元被複製到空出的位元中,從而保持數字的符號。對於無符號整數,空出的位元用 0 填滿。
用法
左移運算子通常用於將整數乘以 2 的次冪,因為它等價於在二進位表示中添加 0。
int x = 5; // 二进制:101 x << 2; // 二进制:10100 (等效于 x * 2^2)
右移運算子通常用於將整數除以 2 的次冪,因為它等價於在二進位表示中刪除 0。
int y = 20; // 二进制:10100 y >> 2; // 二进制:101 (等效于 y / 2^2)
範例
下表比較了使用<< 和>> 對有符號整數和無符號整數進行位移運算的效果:
運算 | 有符號整數 | 無符號整數 |
---|---|---|
5 << 2 | 20 | 20 |
-5 << 2 | -20 | -20 |
#5 >> 2
|
1 | 1 |
-5 >> 2 |
-2 | 2147483646 |
注意:
以上是c++中<< 和 >>有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!