NSString stringWithFormat 添加了“ffffff”
Posted
技术标签:
【中文标题】NSString stringWithFormat 添加了“ffffff”【英文标题】:NSString stringWithFormat added "ffffff" 【发布时间】:2016-05-09 07:26:25 【问题描述】:我正在尝试从 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:ffffffcb:ffffffb8:51:09:fffffff0”
【问题讨论】:
如果你用uint8_t *array = ...
正确声明array
会发生什么?
是的,它有效!我将使用 unsigned char 代替。请添加喜欢的答案您的评论。
【参考方案1】:
问题与符号扩展有关,因为编译器会将您的signed char
提升为unsigned int
。 fffff
的数字是负数。 %x
格式需要 unsigned int
参数。
正确声明 array
将解决问题:
const uint8_t *array = [deviceInfo bytes];
【讨论】:
以上是关于NSString stringWithFormat 添加了“ffffff”的主要内容,如果未能解决你的问题,请参考以下文章
NSString stringWithFormat 添加了“ffffff”
NSString stringWithFormat 无法添加反斜杠
Xamarin.iOS 中 NSString stringWithFormat 的等价物是啥
“NSString stringWithFormat:”在 32 位设备中具有“%zd”奇怪行为