2012-02-11 9 views
6

Sé que byte sin signo falta en Java Entonces, ¿cómo puedo inicializar el conjunto de bytes con número entero de 0 a 255 (en hexadecimal)?Inicializar matriz de bytes sin signo utilizando número hexadecimal

final byte assoc_resp_msg_int[] = new byte[] { 
      0xe3, 0x00, //APDU CHOICE Type(AareApdu) 
      0x00, 0x2c, //CHOICE.length = 44 
      0x00, 0x00, //result=accept 
      0x50, 0x79, //data-proto-id = 20601 
      0x00, 0x26, //data-proto-info length = 38 
      0x80, 0x00, 0x00, 0x00, //protocolVersion 
      0x80, 0x00, //encoding rules = MDER 
      0x80, 0x00, 0x00, 0x00, //nomenclatureVersion 
      0x00, 0x00, 0x00, 0x00, //functionalUnits, normal Association 
      0x80, 0x00, 0x00, 0x00, //systemType = sys-type-manager 
      0x00, 0x08, //system-id length = 8 and value (manufacturer- and device- specific) 
      0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 
      0x00, 0x00, //Manager's response to config-id is always 0 
      0x00, 0x00, //Manager's response to data-req-mode-flags is always 0 
      0x00, 0x00, //data-req-init-agent-count and data-req-init-manager-count are always 0 
      0x00, 0x00, 0x00, 0x00, //optionList.count = 0 | optionList.length = 0 
    }; 
+2

byte sin signo es posible en Java: '(int) y mybyte 0xFF' ver más [aquí] (http: // stackoverflow. com/questions/4266756/can-we-make-unsigned-byte-in-java) – ecle

+0

¡Eclipse indica correctamente la falta de conversión de bytes, eclipse para la victoria! –

Respuesta

15

usted tiene que almacenar 0x80 en el byte siguiente manera:

final byte assoc_resp_msg_int[] = new byte[] { 
     (byte)0xe3, 0x00, //APDU CHOICE Type(AareApdu) 
     0x00, 0x2c, //CHOICE.length = 44 
     0x00, 0x00, //result=accept 
     0x50, 0x79, //data-proto-id = 20601 
     0x00, 0x26, 
     (byte)0x80, 
... 
} 
System.out.println(assoc_resp_msg_int[10]&0xFF); 
//128 
+2

Sí, puede almacenar así '' (byte) 255' también – ecle

+1

Para probar: 'byte b = (byte) 255; byte c = (byte) 0xFF; if (c == b) System.out.println ((b & 0xFF) + "==" + (c & 0xFF)); ' – ecle

+0

Gracias por la información adicional;) –

Cuestiones relacionadas