3
您必須將int值轉換爲HEX字符串。Objective-C DEC到HEX
從4
到0x04
從-4
到0xFC
我使用此代碼[NSString stringWithFormat:@"0x%02X", x]
其中x
是int
。
與4
我獲得0x04
,但與-4
我獲得0xFFFFFFFC
。
我在哪裏錯了?
您必須將int值轉換爲HEX字符串。Objective-C DEC到HEX
從4
到0x04
從-4
到0xFC
我使用此代碼[NSString stringWithFormat:@"0x%02X", x]
其中x
是int
。
與4
我獲得0x04
,但與-4
我獲得0xFFFFFFFC
。
我在哪裏錯了?
-4
類型int
的確在32位系統上爲0xFFFFFFFC
。 %02
將用零填充單位數字,但不會將較長的數字截斷爲兩位數。
如果您有興趣只打印最後八位,你需要自己掩蓋號:
[NSString stringWithFormat:@"0x%02X", (x & 0xFF)];
它似乎並沒有錯......了'-4'是'0xFFFFFFFC'在32位,但在8位中爲0xFC,如果只需要8位,則掩蓋最終結果;但如果該數字不能用8位表示,則可能需要關注可能的溢出/下溢。 – holex