Objective-C 打印 Byte*UInt8数据 并取出最后一位转为16进制
时间: 2023-12-20 11:06:53 浏览: 159
可以使用以下代码打印 Byte*UInt8 数据并取出最后一位转为 16 进制:
```objective-c
Byte *byteArray = (Byte *)malloc(sizeof(Byte)*5);
byteArray[0] = 0x12;
byteArray[1] = 0x34;
byteArray[2] = 0x56;
byteArray[3] = 0x78;
byteArray[4] = 0x9A;
NSMutableString* hexString = [NSMutableString string];
for (NSUInteger i = 0; i < 5; i++) {
[hexString appendFormat:@"%02X", byteArray[i]];
if (i < 4) {
[hexString appendString:@" "];
}
}
NSLog(@"%@", hexString);
Byte lastByte = byteArray[4];
NSString* lastHex = [NSString stringWithFormat:@"%02X", lastByte];
NSLog(@"%@", lastHex);
free(byteArray);
```
这段代码首先使用 malloc 分配了一个大小为 5 的 Byte 数组 byteArray,并将其初始化为指定的值。然后使用循环将数组中的每个元素转为 16 进制字符串,并添加到一个可变字符串 hexString 中,每两个字符之间用空格隔开。最后使用 NSLog 打印字符串 hexString。
接着取出数组中的最后一个元素 lastByte,并将它转为 16 进制字符串 lastHex,然后使用 NSLog 打印出来。注意在格式化字符串时需要使用 %02X,这样可以保证输出的 16 进制字符串始终是两个字符,不足两个字符时前面补 0。
最后记得使用 free 释放分配的内存。
阅读全文