Fusionner deux octets en Java / Android
Question
J'ai un cadre de 22 octets. Le cadre est le courant d'entrée provenant d'un accéléromètre via bluetooth. Les lectures de acceleromter sont une fraction de nombre de 16 bits sur deux octets.
Quand je tente de fusionner les octets avec un tampon [1] + tampon [2], plutôt que d'ajouter les octets, il met juste le côté des résultats côte à côte. si 1 + 2 = 12.
Quelqu'un pourrait-il me dire comment combiner ces deux octets pour obtenir le numéro d'origine. (BTW les octets sont envoyés peu endian)
Merci
La solution
Voici le code:
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | (b2 & 0xFF));
}
Autres conseils
Voici une meilleure réponse qui pourrait faire un peu plus de sens ...
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | b2);
}
(b2 & 0xFF) sort avec le même motif binaire exacte.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow