无符号整数vs%u

时间:2013-06-02 09:06:12

标签: ios objective-c c integer

我从蓝牙低功耗传感器获取了一些十六进制参数。

当我通过调用在屏幕上打印参数时:

char * gotData = getTheData();
NSLog(@"My data: %u", gotData[1]);

打印实际上将十六进制表示转换为十进制。

gotData中的我的数据是带有十六进制表示的字符。例如

gotData = [0xFA, 0xCC];

我想将整数值(0xFA)分配给objective-c / iOS中的任何对象。

使用哪一个?

提前致谢!

1 个答案:

答案 0 :(得分:3)

你在谈论十六进制“演示文稿”。这比你想象的更正确。这是数字数据的一种可能的表示。 Char可以由0xFA表示。 %u本身并不以十六进制格式显示数据。但是,没有任何转换。 0xFA与250完全相同,只是一个不同的REPRESENTATION。

NSNumber是用于存储数值的适当对象。在您的情况下是否可行取决于您希望如何进一步处理它。

您在gotData中的数据根本没有表示。它只是一个八位字节流。数字数据。我们整个行业使用的基础数据类型。

如果您想使用NSLog将其显示为十六进制,请尝试%x%X