簡體   English   中英

Objective-C和Java原始數據類型

[英]Objective-C and Java Primitive Data Types

我需要將一段代碼從Objective-C轉換為Java,但是我在Objective-C中理解原始類型時遇到了問題。 所以我在Objective-C代碼中有他們的數據類型:

UInt64, Uint32, UInt8UInt64, Uint32, UInt8

這是無符號整數(據我所知,從互聯網)。 所以我的問題是,我可以使用Java基本類型,如byte (8位) -而不是UInt8int (32位) -而不是UInt32 ,和long (64位) -而不是UInt64

不幸的是,它不是一個簡單的翻譯,如果不了解你的程序,很難說明“正確”的方法是什么。

  • 如果您的UInt8值確實在0-255之間,則可能必須使用Java signed int來保存整個范圍。

  • 如果您正在處理字節流或內存布局,並且確實只需要使用單個字節的內存,那么您可以嘗試使用byte ,但是您可能必須測試並處理設置高位時要處理的情況(值> 127 )。 與其他無符號類型同上。

理想情況下,如果您的代碼只是對無符號類型“默認”,但實際上簽名版本也可以正常工作(即您的值的范圍永遠不會等於或超過2 ^ 7,2 ^ 15或2 ^ 31 ),那么你可以很好地將“直接”轉換為byteintlong

是的,這些是在Java中使用的正確大小的數據類型。 確保考慮到Java沒有無符號類型 ,並且訣竅是使用下一個最大的大小。 64位無符號算術需要特別考慮。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM