OC (IOS) 字符串 字符 NSData相互转换(NSStrng char NSData)

原创 2013年12月04日 19:57:29

作者:朱克锋

邮箱:zhukefeng@iboxpay.com

转载请注明出处:http://blog.csdn.net/linux_zkf


+ (NSString*)hexStringForData:(NSData*)data

{

    if (data == nil) {

        return nil;

    }

    NSMutableString* hexString = [NSMutableString string];

    const unsigned char *p = [data bytes];

    

    for (int i=0; i < [data length]; i++) {

        [hexString appendFormat:@"%02x", *p++];

    }

    return hexString;

}


+ (NSString*)hexStringForChar:(unsigned char *)data len:(int)len

{

    if (len == 0) {

        return nil;

    }

    NSMutableString* hexString = [NSMutableString string];

    const unsigned char *p = data;

    

    for (int i=0; i < len; i++) {

        [hexString appendFormat:@"%02x", *p++];

    }

    return hexString;

}


+ (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;

}




版权声明:本文为博主原创文章,欢迎转载。转载请注明出处http://blog.csdn.net/linux_zkf,朱克锋--大话商学院系列

相关文章推荐

iOS NSString 和 NSData 的相互转换

//NSString -> NSData NSData *data = [@"520it.com" dataUsingEncoding:NSUTF8StringEncoding]; //NSData ...

OC各种数据类型之间的转换方法

NSNumber转NSString: 假设现有一NSNumber的变量A,要转换成NSString类型的B 方法如下: NSNumberFormatter* numberForm...
  • guozh
  • guozh
  • 2012-08-02 13:52
  • 50662

iOS对象(字典或数组)转化为JSon字符串

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];     [dictionary setValue:@...

字符串转换成NSData

NSString *str = @"字符串";     NSData* dataString = [str dataUsingEncoding:NSUTF8StringEncoding];

NSString, char*, NSData类型之间的转换

1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname...

iOS Base64编解码

Encoding NSData *plainData = [plainString dataUsingEncoding:NSUTF8StringEncoding]; NSString *base64S...

iOS 7: 使用Base64编解码NSData和NSString对象

http://itony.me/488.html 随着iOS7正式版推出,Apple增加了使用Base64编解码的支持。在这篇文章中我们将通过两个例子,演示使用Base64编解码NSData和NS...
  • xyxjn
  • xyxjn
  • 2015-05-26 15:43
  • 49698

在一个APP中使用多个tabBar

入口的 UITabBarController【A】创建方式和正常方式一样,可以使用代码,也可以使用storyboard创建功能视图里的 UITabBarController【B】我这里选择使用代码实现...

iOS base64 编码详解

iOS base64 编码详解iOS中将NSData转为base64编码时有NSDataBase64EncodingOptionsNSDataBase64EncodingOptions有四个选项/**...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)