دمج اثنين من البايتات في جافا/Android
سؤال
لدي إطار 22 بايت. الإطار هو دفق الإدخال من مقياس التسارع عبر البلوتوث. قراءات Acceleromter هي رقم 16 بتات تقسيم على اثنين من البايتات.
عندما أحاول دمج البايتات مع المخزن المؤقت [1] + المخزن المؤقت [2] ، بدلاً من إضافة البايتات ، فإنه يضع النتائج جنبًا إلى جنب. لذلك 1+2 = 12.
هل يمكن لشخص ما أن يخبرني كيف أجمع هذين البايتين للحصول على الرقم الأصلي. (راجع للشغل يتم إرسال البايتات الصغيرة)
شكرًا
المحلول
هذا هو الرمز:
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | (b2 & 0xFF));
}
نصائح أخرى
إليك إجابة أفضل قد تكون أكثر منطقية ...
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | b2);
}
(B2 & 0xFF) يخرج بنفس النمط الثنائي الدقيق.
لا تنتمي إلى StackOverflow