para poder usar a API de criptografia, manipulamos o byte[].
em “C” existe o unsigned byte, mas em java o byte é sempre sinalizado.
existe algum tipo nativo que pode ser utilizado para este fim? é utilizado o signed byte mesmo?
para poder usar a API de criptografia, manipulamos o byte[].
em “C” existe o unsigned byte, mas em java o byte é sempre sinalizado.
existe algum tipo nativo que pode ser utilizado para este fim? é utilizado o signed byte mesmo?
sempre signed.
fizeram isso para evitar a grande confusao e dor de cabeca que ha qdo alguem ta usando signed e voce unsigned, ai o cara muda, etc e tal.
todos os valores em java sao signed (excecao do char, mas ai a historia eh diferente)
como faço para manipular um byte[] onde o conteúdo deveria ser todos unsigned? utilizo o char[] que é 2-byte?
some 128 antes de colocar no array, subtraia 128 depois de tirar do array
valeu!
belo CASTING…
Isso funciona mesmo?
unsigned byte o intervalo é [0, 255] [0x0, 0xFF]
signed byte o intervalo é [-128, 127] [0x80, 0x7F]
vejamos
0x0 + 0x80 -> 0x80 (-128)
0x1 + 0x80 -> 0x81 (-127)
0xFF + 0x80 -> 0x17F -> 0x7F (127)
e o inverso obviamente tb funciona.
Pior que funciona mesmo, legal.
Oque eu sempre fiz foi usar masking, & 0xFF, para guardar num byte[].