`
lizhuang
  • 浏览: 899202 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

iOS Objective c 16进制字符串转为二进制数组

 
阅读更多
@implementation NSString (StringToHexData)

//
// Decodes an NSString containing hex encoded bytes into an NSData object
//
- (NSData *) stringToHexData
{
    int len = [self length] / 2;    // Target length
    unsigned char *buf = malloc(len)
    unsigned char *whole_byte = buf;
    char byte_chars[3] = {'\0','\0','\0'};

    int i;
    for (i=0; i < [self length] / 2; i++) {
        byte_chars[0] = [self characterAtIndex:i*2];
        byte_chars[1] = [self characterAtIndex:i*2+1];
        *whole_byte = strtol(byte_chars, NULL, 16);
        whole_byte++;
    }

    NSData *data = [NSData dataWithBytes:buf length:len];
    free( buf );
    return data;
}
@end

@implementation NSData (DataToHexString)

- (NSString *) dataToHexString
{
    NSUInteger          len = [self length];
    char *              chars = (char *)[self bytes];
    NSMutableString *   hexString = [[NSMutableString alloc] init];

    for(NSUInteger i = 0; i < len; i++ )
        [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", chars[i]]];

    return hexString;
}
@end
分享到:
评论

相关推荐

    ios-DES连续加密两次,转化16进制字符串.zip

    这个压缩包文件"ios-DES连续加密两次,转化16进制字符串.zip"显然涉及到一种常见的加密技术——DES(Data Encryption Standard),以及如何将其结果转换为16进制表示。让我们详细探讨一下这个过程。 DES是一种对称...

    objective-c十进制转换成16进制

    在Objective-C编程中,十进制转换为十六进制是一项常见的任务,特别是在处理二进制数据、颜色编码或通信协议时。本篇文章将详细讲解如何在iOS开发环境中使用Objective-C进行这种转换,并通过一个简单的sample来展示...

    ios_NSString转成16进制Demo

    在Objective-C中,转换NSString到16进制字符串通常涉及以下几个步骤: 1. **获取NSString的UTF8编码**:NSString可以通过`dataUsingEncoding:`方法转换为NSData,通常选择UTF8编码。 ```objc NSData *data = [str ...

    iOS特殊字符处理

    另外,当需要将字符串转换为二进制数据或反之进行操作时,NSData就发挥作用了。使用`dataUsingEncoding:`方法可以将字符串转换为NSData,同时指定编码方式,如NSUTF8StringEncoding。如果数据是从网络接收或从文件...

    iOS.OC各种加密方法

    6. **二进制转16进制**:在编程中,二进制数据转16进制字符串有助于人类阅读和比较。OC中,可以使用`NSString`的`initWithBytes:length:encoding:`方法结合`NSUTF8StringEncoding`将二进制数据转换成16进制表示的...

    ios-WHCategory.zip

    - 16进制颜色:从16进制字符串创建UIColor对象。 - RGB和ARGB值:根据RGB或ARGB分量创建颜色。 6. **UIView**: - 边距和尺寸调整:快速设置视图的边距和尺寸。 - 屏幕截图:方便地获取视图的截图。 **三、...

    iOS的MD5加密

    - 将16字节的MD5摘要转换为32字符的十六进制字符串。 - 返回这个十六进制字符串。 代码示例: ```objc #import "NSString+GetMD5.h" #import @implementation NSString (GetMD5) - (NSString *)getMD5 ...

    加密md5算法

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的输入(也叫做预映射)转化为一个固定长度的输出,这个输出通常是一个128位(16字节)的二进制数,通常用32个十六进制数字表示。...

    GTMBase64资源文件下载

    Base64编码将每3个字节的数据转换为4个字符的ASCII字符串,使得每个字符都可以用16进制表示6位数据。 GTMBase64提供的主要接口包括以下几部分: 1. `GTMBase64`类别:这个类别提供了对NSData对象进行Base64编码和...

    100家企业iOS招聘需求整理

    - **NSData**:用于处理二进制数据。 ### 44. 内存警告 - **didReceiveMemoryWarning**:当系统内存紧张时调用的方法。 - **dealloc**:对象销毁时调用的方法。 ### 45. 代理模式 - **Delegate**:用于通知其他...

    ios Unicode编码日志处理

    在iOS中,字符串通常使用UTF-8或UTF-16编码,这两种都是Unicode的实现方式。 在iOS开发中,尤其是在处理日志时,我们可能会遇到Unicode编码问题。当日志包含非ASCII字符(如中文、特殊符号等)时,如果处理不当,...

    iOS笔试题.doc

    14. **UDID 是由 40 位十六进制字符串组成**。 - UDID 是唯一设备标识符的缩写,用于唯一标识一台设备。 15. **在 KVC 中通用的属性访问器方法是 valueForKey: 和 setValue:forKey:**。 - KVC(Key-Value Coding...

    Objective-C中NSLog输出格式大全

    `%s`用于打印C语言风格的字符串,即字符数组。 12. `%.*s` - Pascal字符串 Pascal字符串是先存储长度再存储内容的字符串。`%.*s`中的星号`*`允许你指定字符串的长度。 13. `%c` - 字符 `%c`用于打印单个字符,如...

    iOS中MD5加密算法的介绍和使用

    这些方法通常会先将输入的NSString转换为UTF8编码的C字符串,然后调用`CC_MD5`函数,最后将结果转换为16进制字符串。 在实际应用中,使用MD5加密需要注意以下几点: - 与后端开发人员协调一致,确定MD5哈希的位数是...

    OC Extension UTF8(日志UTF8内容转换成中文).zip

    2. **编码转换**:一旦识别出UTF-8编码的字符串,工具类会使用Objective-C的`NSString`类提供的方法,如`dataUsingEncoding:`和`initWithData:encoding:`,将UTF-8编码的数据转换为其他编码,例如NSUTF16String...

    IOS面试题2018总结188题

    - **UUID**:通用唯一标识符,用于生成唯一的字符串来标识设备。 #### 15. CPU与GPU - **CPU**:中央处理器,执行大多数计算任务。 - **GPU**:图形处理器,特别适合处理图像和视频数据。 #### 16. 点与像素 - **...

    memscan:用于内存扫描和转储的iOS工具

    #从剥离的iOS二进制文件挂钩私钥 就扫描仪而言,我已经完成了。 我将进行最后的清除,并删除多余的代码,然后我将进行最后的提交。 联系人: wiresharkGD@gmail.com || @Hexploitable ##指示 在反汇编程序中...

Global site tag (gtag.js) - Google Analytics