[英]Objective-C and Java Primitive Data Types
我需要將一段代碼從Objective-C轉換為Java,但是我在Objective-C中理解原始類型時遇到了問題。 所以我在Objective-C代碼中有他們的數據類型:
UInt64, Uint32, UInt8
, UInt64, Uint32, UInt8
,
這是無符號整數(據我所知,從互聯網)。 所以我的問題是,我可以使用Java基本類型,如byte
(8位) -而不是UInt8
, int
(32位) -而不是UInt32
,和long
(64位) -而不是UInt64
。
不幸的是,它不是一個簡單的翻譯,如果不了解你的程序,很難說明“正確”的方法是什么。
如果您的UInt8值確實在0-255之間,則可能必須使用Java signed int
來保存整個范圍。
如果您正在處理字節流或內存布局,並且確實只需要使用單個字節的內存,那么您可以嘗試使用byte
,但是您可能必須測試並處理設置高位時要處理的情況(值> 127 )。 與其他無符號類型同上。
理想情況下,如果您的代碼只是對無符號類型“默認”,但實際上簽名版本也可以正常工作(即您的值的范圍永遠不會等於或超過2 ^ 7,2 ^ 15或2 ^ 31 ),那么你可以很好地將“直接”轉換為byte
, int
和long
。
是的,這些是在Java中使用的正確大小的數據類型。 確保考慮到Java沒有無符號類型 ,並且訣竅是使用下一個最大的大小。 64位無符號算術需要特別考慮。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.