iOS十六进制和字符串的相互转换

ydww 发布于 2014/06/26 10:48
阅读 2K+
收藏 0
 求问:字符串 str="FEFEFE68AAAADF",想
转换成byte[] bytes={0xFE,0xFE,0xFE,0x68,0xAA,.......,0xDF};
同样,bytes转换为对应的str
用java实现了。用object-c或c无从下手,请各位帮忙看下,谢啦!
加载中
0
xoHome
xoHome

字符串2位截断  然后将字符转换为数字加起来

0
自由之信
自由之信
http://stackoverflow.com/questions/3056757/how-to-convert-an-nsstring-to-hex-values
0
渠富林
渠富林

#define C2I(c) ((c >= '0' && c<='9') ? (c-'0') : ((c >= 'a' && c <= 'z') ? (c - 'a' + 10): ((c >= 'A' && c <= 'Z')?(c - 'A' + 10):(-1))))

NSData* convert(NSString* str)

{

    const char* cs = str.UTF8String;

    int count = strlen(cs);

    int8_t bytes[count / 2];

    for(int i = 0; i<count; i+=2)

    {

        char c1 = *(cs + i);

        char c2 = *(cs + i + 1);

        if(C2I(c1) >= 0 && C2I(c2) >= 0)

        {

            bytes[i / 2] = C2I(c1) * 16 + C2I(c2);

        }

        else

        {

            return nil;

        }

    }

    return [NSData dataWithBytes:bytes length:count / 2];

}

以上为str->bytes的,反过来你可以自己搞一下

返回顶部
顶部