3

Linuxカーネルソースコードでは、以下のコードを見つけました:

    h++;
    pending >>= 1;

の一部です__do_softirq(void)。しかし、">>=" とはどういう意味ですか? 私が覚えているように、なぜ「>>」ではないのですか? ありがとう!

4

2 に答える 2

16

それは単に

pending = pending >>1;

つまり、unsigned int を 2 で割ります。

+=これは、/=、 などと同じ構造です。

pending >>1シフト操作の結果を変数に格納しないため、覚えているだけではありません。

于 2012-06-28T14:09:23.533 に答える
2

と同等です

pending = pending >> 1;

のビットを右にビットシフトしpendingます。これは unsigned int を 2 で除算する効果があります。 >> と << はビットシフト演算子であり、= との組み合わせは += と /= と同じように動作します。

于 2012-06-28T14:17:17.823 に答える