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. p>
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. P>
Merci d'avance si vous pouvez m'aider. P>
4 Réponses :
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: cela fait la même chose que mybuffer.puthort (((court) my16bitint); code>
Vous pouvez extraire des octets simples de vos entiers avec
utiliser
http://download.oracle.com/javase/6 /docs/api/java/io/dataAutputtream.html
short toUint16(int i) { return (short) i; } int toUint32(short s) { return s & 0xFFFF; }
retour S & 0XFFFFF; code>
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