我有一個uint8(無符號8位整數)從一個UDP數據包進來。 Java只使用帶符號的基元。如何正確解析這個數據結構與Java?Java如何在Java中解析uint8?
7
A
回答
13
只需讀取它作爲一個字節,然後轉換爲一個int。
byte in = udppacket.getByte(0); // whatever goes here
int uint8 = in & 0xFF;
位掩碼是必需的,否則,位8設爲1的值將被轉換爲負int。例如:
This: 10000000
Will result in: 11111111111111111111111110000000
因此,當您之後將位掩碼0xFF應用於它時,前導1將被取消。對於您的信息:0xFF == 0b11111111
+0
謝謝,這是非常豐富的。感謝您的回覆 – stackoverflow
+0
謝謝!非常感激 – milosmns
3
0xFF & number
會將該數字視爲無符號字節。但是得到的類型是int
3
您可以8位存儲在byte
如果你真的需要將其轉換爲無符號值(通常不這樣做),你可以使用口罩
byte b = ...
int u = b & 0xFF; // unsigned 0 .. 255 value
2
你可以做這樣的事情:
int value = eightBits & 0xff;
的&
運營商(如Java中的所有整數運算符)上蒙上eightBits
到int
(用符號擴展的符號位)。由於這會將大於0x7f的值轉換爲負值int
值,因此需要屏蔽除最低8位以外的所有值。
1
您可以簡單地將它解析爲short
或int
,它們有足夠的範圍來保存無符號字節的所有值。
相關問題
- 1. 如何解析Java中
- 2. 如何解析Java中
- 3. 如何解析Java中
- 4. 在Java中解析
- 5. 解析Java中
- 6. 解析Java中
- 7. 解析Java中
- 8. 解析Java中
- 9. 解析Java中
- 10. 如何在java中解析xml文件?
- 11. 如何在JAVA中解析JSONObjects的JSONArray?
- 12. 如何在JAVA中解析JSON響應
- 13. 如何在android-java中解析xml?
- 14. 如何在Java SAX中解析此XML?
- 15. 如何解析URI這樣在Java中
- 16. 如何解析JSON在Java中
- 17. 如何解析JavaScript變量在Java中
- 18. 的java jsoup解析如何解析HTML
- 19. 如何在java中解析無法解析的日期
- 20. 如何在java中使用sax解析器解析xml?
- 21. Java - 在Java中的SendGrid解析API
- 22. 在Java中解析Java TDate格式
- 23. 在java中解析java字符串
- 24. XML解析Java Java Java
- 25. 解析中國charecters在Java
- 26. 在java中解析文件
- 27. 解析scalaz.Validation在Java中
- 28. 在java中的JSON解析
- 29. 在Java中解析XML
- 30. 在Java中解析JSON
你的意思是** uint8 **? – SLaks