Wat betekent de “>>” symbool betekent in Java?

Ik zie een regel in een code waar ik naar kijk en er staat (12 >> 1) – 1). Ik print die waarde uit en het komt eruit als een 5. Als ik de 12 in 5 verander, komt het eruit als een 1.

Wat is de “>>” symbool precies doen?


Antwoord 1, autoriteit 100%

12 is 1100in binair getal. Een verschuiving naar rechts (>> is de operator voor bitsgewijze verschuiving naar rechts) met één bit produceert

1100 -> 0110 

wat 6 blijkt te zijn

Zo hebben we dat,

6 - 1 = 5

Antwoord 2, autoriteit 93%

>>is de ondertekende operator voor de shift naar rechts. Het verschuift een beetje patroon naar rechts. Het bitpatroon wordt gegeven door de linker operand en het aantal te verschuiven posities door de rechter operand.

Als je twee bits naar rechts schuift, laat je de twee minst significante bits vallen.

Laten we zeggen, x = 00111011

Dus als je dat doet, x >> 2, het resulteert in x = 00001110

Dit is in wezen hetzelfde als een waarde twee keer door 4 of door 2 delen terwijl het breukgedeelte wordt weggelaten.

Dus onderstaande code resulteert in 4:

byte val = 100;
val = (byte) (val >> 2);
System.out.println(val);

Uw voorbeeld uitleggen:

  • De binaire representatie van 12 is: 1100
  • 12 >> 1 is gelijk aan 0110, wat 6 decimaal is
  • dus (12 >> 1) – 1) is gelijk aan 6-1 dat is 5

Antwoord 3, autoriteit 14%

Zie Bitwise- en bitverschuivingsoperatoren

De programmeertaal Java biedt ook operators die presteren:
bitsgewijze en bitverschuivingsbewerkingen op integrale typen. De ondertekende links
shift operator <<verschuift een bitpatroon naar links, en de ondertekende
rechter shift operator >>verschuift een bitpatroon naar rechts. Het stukje
patroon wordt gegeven door de linker operand, en het 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.

(12 >> 1) - 1)         

>>schuift binair 12(1100)1 keer naar rechts.
12 >> 1 == 6(110)

6 - 1 == 5


Antwoord 4, autoriteit 7%

Het is een bitshift-operator. Zie hier.


Antwoord 5, autoriteit 7%

>>voert rekenkundige verschuiving naar rechts uit.

Bijvoorbeeld:

12 >> 1 = 6
-12 >> 1 = -6

Antwoord 6, autoriteit 4%

Binaire operator voor shift naar rechts. De waarde van de linkeroperand wordt naar rechts verplaatst met het aantal bits dat is opgegeven door de rechteroperand. Bijvoorbeeld: A >> 2 geeft 15, wat in binair getal 1111 is.

Meer informatie: Bitwise en Bit Shift-operators

Other episodes