Unsigned?

4 respostas
S

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.

4 Respostas

M

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

D

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.

S

Esse é o problema… só pode ser 1 byte.
O short também tem 2 bytes…

Não dá pra fazer nada a respeito?

M

“Schuenemann”:
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.

Criado 16 de novembro de 2004
Ultima resposta 18 de nov. de 2004
Respostas 4
Participantes 4