2015-03-12 5 views
0

У меня есть строка java, и мне нужно преобразовать ее в байт, но проблема в байте не позволяет этого из-за его диапазона. Что мне делать. ?Преобразование «FFFF» в байт

String num = "FFFF"; 
+4

Ну, очевидно, вы не можете. Объясните, что вы действительно пытаетесь сделать. –

+0

@SotiriosDelimanolis У меня есть массив байтов, и я должен поместить эту строку в этот массив. – Aniq

+0

Вы декодируете строку (байты представляют кодировку) или значение, которое она представляет? –

ответ

1

Байт имеет 8bits таким образом, значения диапазонов от < -128,127> или < 0x00,0xFF> так что вы не можете кодировать 0xFFFF, если он представляющий целое число (65535) в байт потому что это не будет соответствовать.

Однако, если он представляет Короткое значение 0xFFFF означает -1 (если подписанный), который преобразуется в байты. Код будет выглядеть следующим образом:

String num = "FFFF"; 
int n = Integer.parseInt(num,16); 
System.out.println("int:"+n); 
byte bn = (byte)n; 
System.out.println("byte: "+bn); 

и он будет печатать, как это:

int:65535 
byte: -1 
+0

Спасибо! Вы решили мою проблему :) – Aniq

Смежные вопросы