簡體   English   中英

Objective-c字節[]和Java字節[]

[英]Objective-c Byte[] and Java byte[]

當我使用Java將特殊字符串轉換為byte []時,其結果是:

78
-19
-71
-54
-61
-87
12
-99

當我使用objective-c轉換相同的字符串時,其結果是:

78
237
185
202
195
169
12
157

為什么在objective-c字節元素大於128 我知道原因是關於unsigned ,但是如何解決呢?

處理此問題的方法只是在打印出它們或進行比較時將Java字節“處理”為無符號。 最簡單的方法是使用byteValue & 0xFF以int形式獲取字節的無符號值,但是某些庫可以減輕痛苦-例如,使用番石榴的 UnsignedBytes ,您可以執行UnsignedBytes.join(" ", byteArray)來獲取以空格分隔的無符號字節,例如UnsignedBytes.join(" ", byteArray) 78 237 185 ...例如。 (公開:我為番石榴做出了貢獻。)

看起來Java字節是有符號的,而Objective-C字節是無符號的。 如果將256添加到小於0的Java字節中,則會得到相應的Obj-C字節(> = 0的Java字節已經與Obj-C字節相同)。 它應該很容易轉換。

暫無
暫無

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

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