7
votes

Convertir int vers java court non signé

J'ai écrit un analyseur .obj en Java pour modéliser des objets 3D sur iPhone. Je voudrais exporter les données comme fichier binaire, qui doit être aussi petite que possible. J'ai beaucoup d'indices qui conviendraient à un bref non signé, mais ils sont représentés comme int dans Java.

J'aimerais utiliser la classe BYTEBUFFER pour effectuer la conversion juste avant d'écrire les données dans un fichier. Je suppose que je devrai manipuler des octets avant de les pousser dans le bytebuffer, mais je n'ai aucune idée de la façon de le faire.

Merci d'avance si vous pouvez m'aider.


4 commentaires

Il n'y a rien de tel qu'un non signé quoi que ce soit dans Java ...


Pourquoi ne pas simplement être jeté au char? Cela se traduit par 16 bits


@Andrew White Oui, je sais que je ne demanderais pas si je ne le faisais pas.


@Mike Kwan C'est ce que j'ai fait, ça marche. Merci


4 Réponses :


11
votes

en Java, un bref non signé peut être représenté comme un char code>. Il suffit de lancer Int vers Char et d'utiliser Putchar () Code> sur le BYTEBUFFER.

myBuffer.putChar((char) my16BitInt);


1 commentaires

+1: cela fait la même chose que mybuffer.puthort (((court) my16bitint);



2
votes

Vous pouvez extraire des octets simples de vos entiers avec xxx


0 commentaires


4
votes
short toUint16(int i)
{
    return (short) i;
}

int toUint32(short s)
{
    return s & 0xFFFF;
}

1 commentaires

retour S & 0XFFFFF;