objective-c - OC数据转换hex字符串转为uint8数组

查看:607
本文介绍了objective-c - OC数据转换hex字符串转为uint8数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

要得到这个结果

UInt8 bytes[]= {0xca,0x20,0xfe,0xc1,0x04,0x03,0x03,0x07,0x01,0xac};

有字符串

NSString *strData = @"ca 20 fe c1 04 03 03 07 00 ac";

如何转换成上面的结构,使用oc

swift的转换如下

    let data = NSString(string : "ca 20 fe c1 04 03 03 07 01 ac");
    let dataArr = data.componentsSeparatedByString(" ")
    var bytes : [UInt8] = [];
    
    for item in dataArr {
        let byte = UInt8(item, radix: 16)
        bytes.append(byte!);
    }
    
    let hexData = NSData(bytes: bytes, length: 10)

解决方案

试试看

NSString *strData = @"ca 20 fe c1 04 03 03 07 00 ac";
NSArray<NSString *> *dataArr = [strData componentsSeparatedByString:@" "];
UInt8 bytes[dataArr.count];
for (NSInteger i = 0; i< dataArr.count; i++) {
    NSString *obj = dataArr[i];
    UInt8 byte = (UInt8)strtoul([obj UTF8String],0,16);
    bytes[i] = byte;
}
// NSData *data = [NSData dataWithBytes:bytes length:dataArr.count];

这篇关于objective-c - OC数据转换hex字符串转为uint8数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆