Ios 添加了NSString stringWithFormat“字符串格式”;“ffffff”;

Ios 添加了NSString stringWithFormat“字符串格式”;“ffffff”;,ios,objective-c,nsstring,nsdata,Ios,Objective C,Nsstring,Nsdata,我试图从NSData中获取字节并将其放入NSString中。在我这样做时,“ffffff”同时添加: char *array = (char *)[deviceInfo bytes]; return [NSString stringWithFormat:@"%02x:%02x:%02x:%02x:%02x:%02x", array[5],array[4],array[3],array[2],array[1],array[0]]; 返回“53:FFFFFF CB:FFFFFF B8:51:09:

我试图从NSData中获取字节并将其放入NSString中。在我这样做时,“ffffff”同时添加:

char *array = (char *)[deviceInfo bytes];
return [NSString stringWithFormat:@"%02x:%02x:%02x:%02x:%02x:%02x", array[5],array[4],array[3],array[2],array[1],array[0]];
返回“53:FFFFFF CB:FFFFFF B8:51:09:FFFFFFF 0”

当编译器将
有符号字符提升为
无符号整数时,该问题与符号扩展有关。带有
fffff
的数字为负数。
%x
格式需要一个
无符号int
参数

正确声明
array
将解决此问题:

const uint8_t *array = [deviceInfo bytes];

如果使用
uint8\u t*array=…
正确声明
array
会发生什么情况?是的,它可以工作!我将改用无符号字符。请加上你的评论。