0

我有以下示例蓝牙模块代码,我试图在我自己的应用程序中实现。

- (void)receivedData:(unsigned char *)data length:(NSUInteger)len; {
NSLog(@"DATA:  %s", data );}

控制台打印出这样的日志:

2013-06-04 17:32:05.408 xyz[155:707] DATA:  0ıÊ
2013-06-04 17:32:05.447 xyz[155:707] DATA:  03803DE

2013-06-04 17:32:05.668 xyz[155:707] DATA:  0ıÊ
2013-06-04 17:32:05.709 xyz[155:707] DATA:  0B403DE

我知道蓝牙模块正在发送一个十字节的数据包。我想要前两个字节的信息。这些是十六进制值吗?如何将它们转换为十进制?

任何帮助表示赞赏。

4

1 回答 1

2

如果您使用 C,只需使用 print f 函数:

printf("%x", DATA[i]);

这会将其打印为十六进制。如果要将其打印为字符串,只需像这样打印:

printf("%s", DATA); 

十进制:

printf("%d", DATA[i]);

看起来它现在正在打印它的 ascii 值。

于 2013-06-04T16:47:01.440 回答