簡體   English   中英

如何將位操作代碼從Java轉換為Objective-C?

[英]How can I convert this bits operation code from java to objective-c?

Java中的代碼:

byte x = new Integer((version << 6) | (padding << 5)
            | (extension << 4) | cc).byteValue();

我在Objective-C中需要這個

我嘗試了uint8_t x = (version << 6 ) | (padding << 5) | (extension <<4) | cc); uint8_t x = (version << 6 ) | (padding << 5) | (extension <<4) | cc);

java語句返回-128 ,而我的方法返回128

您應該使用符號的類型,而不是無符號的: uint8_t - > int8_t

為什么會得到128 無符號整數中沒有負數,因此您可以這樣想象-128 = 0 - 128 = (0 - 1) - 127 = 255 - 127 = 128 (無符號1字節整數為0-1 0 - 1 = 255 ,范圍是[0; 255]

您還可以閱讀byte 文檔和C數據類型文檔

暫無
暫無

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

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