Tem como eu declarar um tipo primitivo sem sinal? Ou algum truque ou macete?
No C eu podia fazer unsigned int, por exemplo.
Preciso fazer uma aplicação de rede que envie bytes apenas (0 - 255).
Obrigado.
Tem como eu declarar um tipo primitivo sem sinal? Ou algum truque ou macete?
No C eu podia fazer unsigned int, por exemplo.
Preciso fazer uma aplicação de rede que envie bytes apenas (0 - 255).
Obrigado.
todos os inteiros numericos em java são sinalizados, nao tem como deixa-los unsigned, só se vc usar o char, q esse sim, pode ser usado como um int, e vai de 0 a 35565
so uma observaçãozinha…
como java adota o padrão unicode, o tamanho de um char é de 2 bytes, ou seja 16 bits
2^16 = 65536
portanto a faixa de valores seria de 0 a 65535.
Esse é o problema… só pode ser 1 byte.
O short também tem 2 bytes…
Não dá pra fazer nada a respeito?
Esse é o problema… só pode ser 1 byte.
O short também tem 2 bytes…Não dá pra fazer nada a respeito?
Correção.
O java não utiliza Unicode e sim o unicode compacto, ou seja UTF-8.
Isso quer dizer que qualquer caractere até 255 (vide tabela ASCII), terá apenas 1 byte, acima disso 2 bytes.
É adaptivo.