W mojej tablicy bajtów mam wartości mieszania wiadomości, która składa się z niektórych wartości ujemnych, a także wartości dodatnich. Wartości dodatnie są drukowane w łatwy sposób przy użyciu instrukcji (char)byte[i]
. Teraz w jaki sposób można uzyskać wartość ujemnąjak wydrukować dane w tablicy bajtowej jako znaki
Odpowiedz
Dobrze jeśli jesteś zadowolony drukując je po przecinku, można po prostu sprawiają, że pozytywny przez maskowanie:
int positive = bytes[i] & 0xff;
Jeśli drukowanie hash choć go byłoby bardziej konwencjonalne użycie heksów. Istnieje wiele innych pytań na temat przepełnienia stosu, dotyczących konwersji danych binarnych na ciąg szesnastkowy w Javie.
byte[] buff = {1, -2, 5, 66};
for(byte c : buff) {
System.out.format("%d ", c);
}
System.out.println();
dostaje
1 -2 5 66
Jak o Arrays.toString(byteArray)
?
Oto niektóre compilable Kod:
byte[] byteArray = new byte[] { -1, -128, 1, 127 };
System.out.println(Arrays.toString(byteArray));
wyjściowa:
[-1, -128, 1, 127]
Dlaczego ponownie wymyślać koła ...
Jeśli chcesz wydrukować bajtów jak zwęgla można użyć Konstruktor String.
byte[] bytes = new byte[] { -1, -128, 1, 127 };
System.out.println(new String(bytes, 0));
Konstruktor String (byte [], int) jest przestarzały. Zamiast tego użyj String (byte [], Charset), na przykład new String (bytes, Charset.forName ("ISO-8859-1")). –
Spróbuj tego: new String(byte[])
Spróbuj:
public static String print(byte[] bytes) {
StringBuilder sb = new StringBuilder();
sb.append("[ ");
for (byte b : bytes) {
sb.append(String.format("0x%02X ", b));
}
sb.append("]");
return sb.toString();
}
Przykład:
public static void main(String []args){
byte[] bytes = new byte[] {
(byte) 0x01, (byte) 0xFF, (byte) 0x2E, (byte) 0x6E, (byte) 0x30
};
System.out.println("bytes = " + print(bytes));
}
wyjściowa: bytes = [ 0x01 0xFF 0x2E 0x6E 0x30 ]
- 1. Ładowanie zespołu tablicy bajtowej
- 2. Reprezentacja HEX tablicy bajtowej
- 3. int16 do tablicy bajtowej
- 4. Tworzenie pliku z tablicy bajtowej
- 5. NSData z tablicy bajtowej w Swift
- 6. Jak wydrukować wyniki tablicy w jednym wierszu?
- 7. Odczytywanie pliku do tablicy bajtowej (PHP)
- 8. Konwersja typu danych 'długi' do tablicy bajtowej
- 9. Bardzo duży ciąg do tablicy bajtowej
- 10. jak wydrukować dane json w console.log
- 11. Jak wydrukować wszystkie wartości tablicy w Perlu
- 12. Czy można wydrukować tekst w Unicode lub znaki w MATLAB?
- 13. Korzystanie z PdfBox, jak mogę pobrać zawartość PDDocument jako tablicy bajtowej?
- 14. Jak wydrukować linie zawierające tylko znaki z listy w BASH?
- 15. Jak mogę zlokalizować i wydrukować indeks maksymalnej wartości w tablicy?
- 16. Jak wydrukować dane wyjściowe w nowej linii w PL/SQL?
- 17. Łańcuch indeksowania jako znaki
- 18. Jak mogę wydrukować dane bajtu jako ciąg szesnastkowy w PostgreSQL/pgAdmin III?
- 19. Najbardziej wydajna metoda kopiowania treści std :: deque do tablicy bajtowej
- 20. Jak wydrukować malajalam jako wyjście programu c/C++?
- 21. Android BitmapFactory wraca null na dekodowanej tablicy bajtowej Base64
- 22. Jak ładnie wydrukować dane wyjściowe dziennika w konsoli Chrome DevTools?
- 23. Jak wydrukować sformatowane w terminalu dane wyjściowe do zmiennej
- 24. Jak wydrukować dane wyjściowe bez nowego ciągnika w Rust?
- 25. Jak można odczytać dane binarne z rejestru do tablicy bajtów
- 26. Jak ustawić typ użytkownika tablicy bajtowej o stałym rozmiarze w języku C#?
- 27. Vagrant - jak wydrukować dane wyjściowe polecenia szefa kuchni na stdout?
- 28. Jak mogę wydrukować zawartość zmiennej typu Dane za pomocą Swift?
- 29. PHP dopasowują dane do tablicy
- 30. Jak wydrukować wielowymiarową tablicę w ruby?
Co prawda przez przez "jako znaki" dokładnie? Dziesiętny? Hex: http://stackoverflow.com/questions/9655181/convert-from-byte-array-to-hex-string-in-java –