Vedo una riga in un codice che sto guardando e che dice (12 >> 1) - 1). Stampo quel valore fuori e esce come un 5. Se cambio il 12 a 5, esce come un 1. Qual è il simbolo ">>" facendo esattamente? GrazieCosa significa ">>" in java
risposta
12 è 1100
in binario. Uno spostamento a destra (>> è il bit operatore spostamento a destra) di un bit produce
1100 -> 0110
che risulta essere 6.
Così abbiamo che,
6 - 1 = 5
È un operatore di spostamento di bit. Vedi here
>>
esegue operazioni aritmetiche spostamento a destra esempio:
12 >> 1 = 6
-12 >> 1 = -6
binario spostamento a destra dell'operatore. Il valore degli operandi di sinistra viene spostato a destra dal numero di bit specificato dall'operando di destra. Ad esempio, A >> 2 darà 15 che è 1111.
Maggiori informazioni: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
Vedi Bitwise and Bit Shift Operators
Il linguaggio di programmazione Java fornisce anche operatori che eseguono bit bit e bit sh ift operazioni su tipi interi. L'operatore di spostamento spostato a sinistra con segno
<<
sposta un modello di bit a sinistra e l'operatore di spostamento a destra con segno>>
sposta un motivo a bit verso destra. Il bit è fornito dall'operando di sinistra e il numero di posizioni da spostare dall'operando di destra. L'operatore di spostamento a destra senza segno>>>
sposta uno zero nella posizione più a sinistra, mentre la posizione più a sinistra dopo>>
dipende dall'estensione di segno.
(12 >> 1) - 1)
>>
turni binari 12(1100)
1 volte a destra.
12 >> 1 == 6(110)
6 - 1 == 5
>>
è firmato operatore spostamento a destra. Cambia un po 'di schema a destra. Il pattern di bit è dato dall'operando di sinistra e il numero di posizioni da spostare dall'operando di destra.
Quando si spostano a destra 2 bit si eliminano i 2 bit minimi.
consente di dire, x = 00111011
Così, quando lo fai, x >> 2
, risulta x = 00001110
Questo è essenzialmente la stessa cosa di divisione di un valore 4 o da 2 due volte.
Così, sotto il codice si tradurrà 4
byte val = 100;
val = (byte) (val >> 2);
System.out.println(val);
Spiegando il tuo esempio:
- La rappresentazione binaria di 12 è: 1100
- 12 >> 1 equivale a 0110, che è 6 in decimale
- così (12 >> 1) - 1) è equivalente a 6-1 ovvero 5
- 1. cosa significa ">>>" in java?
- 2. Cosa significa -> _ => in Scala/Lift?
- 3. In F # cosa significa l'operatore >>?
- 4. Groovy, cosa significa -> significa
- 5. Cosa significa "->"?
- 6. Che cosa significa "=>"?
- 7. Cosa significa '=>'?
- 8. Cosa significa "=>" in PHP?
- 9. Cosa significa "() =>" in C#?
- 10. Cosa significa -> in C++?
- 11. Che cosa significa ">>>" in javascript?
- 12. Che cosa significa%>% significa in R?
- 13. Che cosa significa >> e 0xfffffff8?
- 14. Generici cosa significa in realtà <?>?
- 15. Cosa significa iteratore-> secondo?
- 16. cosa significa (stato = {}) => stato significa
- 17. Che cosa significano >> e >>> in Java?
- 18. cosa significa <T> in <T> vuoto()
- 19. Cosa significa questo operatore ">> =" in C?
- 20. cosa significa questo in PHP -> o =>
- 21. Che cosa significa $$ e <generated> in java stacktrace?
- 22. Che cosa significa <init> in un'eccezione Java?
- 23. Che cosa significa la classe <?> in Java?
- 24. cosa significa <> in Python
- 25. Che cosa significa "<=>" in MySQL?
- 26. In C++ cosa significa template <>?
- 27. Cosa significa "<$>" in Haskell?
- 28. Che cosa significa '=>' l'operatore in C#?
- 29. Cosa significa `[< >]` in OCaml?
- 30. Cosa significa => in un'espressione Linq
sì, l'ho appena visto quando ho scritto 12 in binario. Grazie per la risposta! –
Secondo link su Un famoso motore di ricerca Web per "operatore java >>: [Il tutorial ufficiale sugli operatori Java] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) –
@fge No, è un turno giusto – pathfinderelite