Ho alcuni dati nelle variabili int
in Java (intervallo compreso tra 0 e 64000). Come convertire in byte questo intero? Ho bisogno solo di due byte inferiori da int
(l'intervallo è ok). Come estrarlo?Ottieni due byte inferiori dalla variabile int
11
A
risposta
22
È possibile ottenere il byte più basso dal numero intero da ANDing con 0xFF
:
byte lowByte = (byte)(value & 0xFF);
Questo funziona perché 0xFF
ha zero bit ovunque al di sopra del primo byte.
Per ottenere il secondo più basso byte, è possibile ripetere questo trucco dopo lo spostamento verso il basso tutti i bit del numero 8 punti:
byte penultimateByte = (byte)((value >> 8) & 0xFF);
3
Non devi fare e il funzionamento di ottenere il più basso byte basta lanciarlo sul byte e ottenere il byte inferiore nella variabile byte.
prova a seguire entrambi vi darà lo stesso risultato
short value = 257;
System.out.println(value);
byte low = (byte) value;
System.out.println("low: " + low);
byte high = (byte)(value >> 8);
System.out.println("high: " + high);
value = 257;
System.out.println(value);
low = (byte) (value & 0xFF);
System.out.println("low: " + low);
high = (byte) ((value >> 8) & 0xFF);
System.out.println("high: " + high);
o provarlo su Ideone.com
Problemi correlati
- 1. Come ottengo gli 8 bit inferiori di int?
- 2. Perché l'operatore xor su due byte produce un int?
- 3. Come posso convertire un int a due byte in C#?
- 4. Int a byte array
- 5. C# int conversione byte
- 6. Perché un const int esegue implicitamente il cast in un byte, ma una variabile int no?
- 7. Come convertire int [] a byte []
- 8. Convertire 4 byte a int
- 9. Scala: ottieni gli ultimi due caratteri dalla stringa
- 10. Ottieni bytecode dalla classe caricata
- 11. Matlab, rimuovi elementi dalla matrice che sono inferiori alla media?
- 12. Byte Java non firmato [2] su int?
- 13. Converti byte in Int/uint in C
- 14. Decomporre l'intero in due byte
- 15. La complessità della moltiplicazione di due matrici triangolari inferiori
- 16. Conversione implicita Java di int a byte
- 17. ResponseError: Previsto 4 o 0 byte int
- 18. Ottieni valore dalla ricerca C#
- 19. Ottieni un valore intero univoco dalla stringa
- 20. Ottieni l'indirizzo variabile di ambiente
- 21. Ottieni un bit specifico dal byte
- 22. Ottieni byte da std :: string in C++
- 23. Simula le variabili int con byte o corti
- 24. Convertire un byte o int a BitSet
- 25. conversione di byte in int in Java
- 26. Conversione da byte a int in java
- 27. Ampliamento da byte a Int (bug Marshmallow)
- 28. convertire 3 byte in int in java
- 29. Java Bitwise o Between Byte e Int
- 30. tipo di variabile Javascript (byte)
+1 anche se non è un trucco, si chiama "shift aritmetico" ;-) –