Wat doen << of >>> in java betekent?

Mogelijk duplicaat:
Wat betekent >> en >>> bedoel in Java?

Ik kwam een ​​aantal onbekende symbolen tegen in een Java-code, en hoewel de code correct compileert en functioneert, weet ik niet precies wat de punthaken in deze code doen. Ik heb de code gevonden in com.sun.java. help.search.BitBuffer, waarvan een fragment hieronder staat:

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;
        }
    }

Wat doen die mysterieus uitziende haakjes? Het lijkt bijna op c++ ​​invoeging/extractie, maar ik weet dat Java zoiets niet heeft.

Ik heb ook geprobeerd te googlen, maar om de een of andere reden lijkt Google de punthaken niet te zien, zelfs niet als ik ze tussen aanhalingstekens zet.


Antwoord 1, autoriteit 100%

Het zijn Bitwise Bit-shift-operators, ze werken door het aantal bits dat wordt gespecificeerd te verschuiven. Hier is zelfstudie over hoe ze te gebruiken.

De ondertekende linker shift-operator “<<” verschuift een beetje patroon naar links

De ondertekende rechter shift-operator “>>” verschuift een beetje patroon naar de
juist.

De niet-ondertekende rechter shift-operator “>>>” verschuift een nul in de
meest linkse positie


Antwoord 2, autoriteit 15%

rechtstreeks van ORACLE DOC.

De ondertekende linker shift-operator “<<” verschuift een beetje patroon naar links,
en de ondertekende rechter shift-operator “>>” verschuift een beetje patroon naar de
Rechtsaf. Het bitpatroon wordt gegeven door de linker operand, en de
aantal posities te verschuiven met de rechter operand. de niet-ondertekende
rechter shift-operator “>>>” verschuift een nul naar de meest linkse positie,
terwijl de meest linkse positie na “>>” hangt af van tekenextensie.


Antwoord 3, autoriteit 8%

Bitgewijs verschuiven. Bekijk de officiële documenten hier: http://docs.oracle.com/ javase/tutorial/java/nutsandbolts/op3.html

LEAVE A REPLY

Please enter your comment!
Please enter your name here

one × 5 =

Other episodes