1. ホーム
  2. java

[解決済み] javaの << や >>> はどういう意味ですか?[重複しています]

2022-03-02 09:40:26

質問

<ブロッククオート

重複の可能性があります。
Javaで>>と>>はどういう意味ですか?

あるJavaのコードで見慣れない記号に遭遇しました。コードはコンパイルして正しく機能しますが、このコードで山括弧が何をしているのかがよくわかりません。 私は、以下のコードを見つけました。 com.sun.java.help.search.BitBuffer その断片を以下に示します。

public void append(int source, int kBits)
    {
        if (kBits < _avail)
        {
            _word = (_word << kBits) | source;
            _avail -= kBits;
        }
        else if (kBits > _avail)
        {
            int leftover = kBits - _avail;
            store((_word << _avail) | (source >>> leftover));
            _word = source;
            _avail = NBits - leftover;
        }
        else
        {
            store((_word << kBits) | source);
            _word = 0;
            _avail = NBits;
        }
    }

この謎のカッコは何のためにあるのでしょうか? それは ほとんど はc++の挿入/抽出のように見えますが、Javaにはそのようなものがないことは知っています。

あと、ググってみたのですが、なぜかGoogleは角括弧を引用符で囲んでも見えないようです。

どのように解決するのですか?

これらは、ビットシフト演算子で、指定されたビット数をシフトして動作します。 以下はその例です。 チュートリアル の使い方を説明します。

符号付き左シフト演算子 "<<" は、ビットパターンを左にシフトする演算子です。

符号付き右シフト演算子 ">>"は、ビットパターンを右にシフトします。 の右側です。

符号なし右シフト演算子 ">>"は、0 を 左端の位置