2012-02-10 35 views

回答

1

問題是Java類型總是被簽名。

因此,如果您有一個從0到255的無符號C類型,那麼可以表示該範圍上半部分的最小Java類型是短的。

另一種方法是,可以改變或以某種方式改變你的uint8_t使用Java的byte的消極部分,但語義是非常常理。

+0

這對於uint8_t是有意義的,但是你不能使用短的那麼對uint16_t呢?爲什麼使用32位int? – c12 2012-02-10 18:40:09

+0

@ c12與'uint16_t'發生完全相同的問題。在Java中,'short'的範圍是-32,768到32,767,而'uint16_t'的範圍是0到65,536 - 如果你使用'short','uint16_t'的上半部應該在哪裏? – Flexo 2012-02-10 18:43:28

+0

你如何得到一個字節而不是短的?我在java中使用一個庫,它使用字節並將它們從我的swig接口傳遞給它。由於簽名的原因,字節縮短成爲一種痛苦。 – Sam 2013-02-26 23:10:40