首頁  >  文章  >  後端開發  >  c++中<< 和 >>有什麼差別

c++中<< 和 >>有什麼差別

下次还敢
下次还敢原創
2024-04-26 16:57:18375瀏覽

C 中的 << 和 >> 是位移運算符,分別用於位元左移和位元右移整數。左移運算子 (<<) 將整數的二進位表示向左移動,空位以符號位元或 0 填滿。右移運算子 (>>) 將整數的二進位表示向右移動,空位以符號位元或 0 填滿。

c++中<< 和 >>有什麼差別

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 << 22020
-5 << 2-20-20
#5 >> 2 1 1
-5 >> 2 -2 2147483646

注意:

  • 對於無符號整數,右移運算的結果總是正數。
  • 對於有符號整數,右移運算的結果取決於符號位元。

以上是c++中<< 和 >>有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn