oc 字符串直接转换成byte

- (NSData*)dataForHexString:(NSString*)hexString

{

      if (hexString == nil) {

        return nil;

    }

    const char* ch = [[hexString lowercaseString] cStringUsingEncoding:NSUTF8StringEncoding];

    NSMutableData* data = [NSMutableData data];

    while (*ch) {

        if (*ch == ' ') {

            continue;

        }

        char byte = 0;

        if ('0' <= *ch && *ch <= '9') {

            byte = *ch - '0';

        }

        else if ('a' <= *ch && *ch <= 'f') {

            byte = *ch - 'a' + 10;

        }

        else if ('A' <= *ch && *ch <= 'F') {

            byte = *ch - 'A' + 10;

        }

        ch++;

        byte = byte << 4;

        if (*ch) {

            if ('0' <= *ch && *ch <= '9') {

                byte += *ch - '0';

            } else if ('a' <= *ch && *ch <= 'f') {

                byte += *ch - 'a' + 10;

            }

            else if('A' <= *ch && *ch <= 'F')

            {

                byte += *ch - 'A' + 10;

            }

            ch++;

        }

          [data appendBytes:&byte length:1];

    }

    return data;

}

 

posted on 2015-10-14 14:22  DeanLee  阅读(1214)  评论(0编辑  收藏  举报