【问题标题】:unsigned integer vs %u无符号整数与 %u
【发布时间】:2013-06-02 09:06:12
【问题描述】:

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

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

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

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

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

gotData = [0xFA, 0xCC];

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

用哪一个?

提前致谢!

【问题讨论】:

  • 数据不以十六进制、整数和其他格式存储。它以位存储,简单明了。如何呈现取决于您在引用和显示位时如何描述它。

标签: ios objective-c c integer


【解决方案1】:

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

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

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

如果您想使用 NSLog 以十六进制形式显示它,请尝试使用 %x%X

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2011-06-10
    • 2018-02-22
    • 2012-04-19
    • 2012-01-06
    • 1970-01-01
    相关资源
    最近更新 更多