Objective C 将具有十六进制值的 NSData 转换为 int
Objective C converting NSData with hex value to int
我有一个 NSData
,里面有一个十六进制值,例如<EC>
.
现在我需要将此值转换为 int
变量以获得 int x = -20
.
想法?
您可以使用 getBytes
从 NSData
:
中提取该字节
uint8_t byte;
[data getBytes:&byte length:1];
如果你真的需要 int
中的那个,那么从那个 uint8_t
变量中获取它:
int x = byte;
顺便说一句,如果您确实需要将此 0xec
值解释为 -20
而不是 236
,您可以使用 int8_t
而不是 uint8_t
, 并且该字节值的符号将被保留。但是,在处理二进制数据时,我们经常处理无符号字节,而不是有符号整数,但这仅取决于此二进制 NSData
代表什么。
我有一个 NSData
,里面有一个十六进制值,例如<EC>
.
现在我需要将此值转换为 int
变量以获得 int x = -20
.
想法?
您可以使用 getBytes
从 NSData
:
uint8_t byte;
[data getBytes:&byte length:1];
如果你真的需要 int
中的那个,那么从那个 uint8_t
变量中获取它:
int x = byte;
顺便说一句,如果您确实需要将此 0xec
值解释为 -20
而不是 236
,您可以使用 int8_t
而不是 uint8_t
, 并且该字节值的符号将被保留。但是,在处理二进制数据时,我们经常处理无符号字节,而不是有符号整数,但这仅取决于此二进制 NSData
代表什么。