`
zxs19861202
  • 浏览: 915206 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

ios NSdata 与 NSString,Byte数组相互转换

    博客分类:
  • ios
阅读更多

1. NSData 与 NSString

NSData-> NSString

NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];

 

NSString->NSData

NSString *aString = @"1234abcd";

NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];

 

2.NSData 与 Byte

NSData-> Byte数组

NSString *testString = @"1234567890";

NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];

Byte *testByte = (Byte *)[testData bytes];

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

printf("testByte = %d\n",testByte[i]);

 

Byte数组-> NSData

Byte byte[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};

NSData *adata = [[NSData allocinitWithBytes:byte length:24];

 

Byte数组->16进制数

Byte *bytes = (Byte *)[aData bytes];

NSString *hexStr=@"";

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

{

NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数

if([newHexStr length]==1)

hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];

else 

hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];

}

NSLog(@"bytes 的16进制数为:%@",hexStr);

 

16进制数->Byte数组

///// 将16进制数据转化成Byte 数组

NSString *hexString = @"3e435fab9c34891f"; //16进制字符串

int j=0;

Byte bytes[128];  ///3ds key的Byte 数组, 128位

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

{

int int_ch;  /// 两位16进制数转化后的10进制数

 

unichar hex_char1 = [hexString characterAtIndex:i]; ////两位16进制数中的第一位(高位*16)

int int_ch1;

if(hex_char1 >= '0' && hex_char1 <='9')

int_ch1 = (hex_char1-48)*16;   //// 0 的Ascll - 48

else if(hex_char1 >= 'A' && hex_char1 <='F')

int_ch1 = (hex_char1-55)*16//// A 的Ascll - 65

else 

int_ch1 = (hex_char1-87)*16//// a 的Ascll - 97

i++;

 

unichar hex_char2 = [hexString characterAtIndex:i]; ///两位16进制数中的第二位(低位)

int int_ch2;

if(hex_char2 >= '0' && hex_char2 <='9')

int_ch2 = (hex_char2-48); //// 0 的Ascll - 48

else if(hex_char1 >= 'A' && hex_char1 <='F')

int_ch2 = hex_char2-55//// A 的Ascll - 65

else 

int_ch2 = hex_char2-87//// a 的Ascll - 97

 

int_ch = int_ch1+int_ch2;

NSLog(@"int_ch=%d",int_ch);

bytes[j] = int_ch;  ///将转化后的数放入Byte数组里

j++;

}

NSData *newData = [[NSData allocinitWithBytes:bytes length:128];

NSLog(@"newData=%@",newData);

 

3. NSData 与 UIImage

NSData->UIImage

UIImage *aimage = [UIImage imageWithData: imageData];

 

//例:从本地文件沙盒中取图片并转换为NSData

NSString *path = [[NSBundle mainBundle] bundlePath];

NSString *name = [NSString stringWithFormat:@"ceshi.png"];

NSString *finalPath = [path stringByAppendingPathComponent:name];

NSData *imageData = [NSData dataWithContentsOfFile: finalPath];

UIImage *aimage = [UIImage imageWithData: imageData];

 

UIImage-> NSData

NSData *imageData = UIImagePNGRepresentation(aimae); 

 

int 和NSdata的转化

int i =1;NSData *data =[NSDatadataWithBytes:&i length:sizeof(i)];
int i;[data getBytes:&i length:sizeof(i)];

 

分享到:
评论

相关推荐

    NSData 与 NSString,Byte数组,UIImage 的相互转换

    - `+[NSData dataWithBytes:length:]`:提供`NSString`的UTF-8表示,使用`[string UTF8String]`获取字节数组,然后转换为`NSData`。 - `+[NSData dataUsingEncoding:]`:直接使用字符串的编码转换为`NSData`,如`...

    ios demo,NSData和NSString之间的相互转换的源代码

    这个“ios demo,NSData和NSString之间的相互转换的源代码”提供了实现这种转换的示例代码。 首先,让我们深入了解一下NSData和NSString的基本概念: 1. **NSData**:NSData是Foundation框架中的一个类,它代表了...

    ios的NSString, char, NSData格式转化

    iOS NSString, char, NSData格式转化 iOS 开发中,我们经常需要在NSString、char、NSData之间进行格式转化,以满足不同的需求。下面我们将详细介绍这些格式转化的方法和示例代码。 NSString 转化为 UNICODE String...

    ios NSData NSString AES加密解密算法源码

    本示例中的源码着重介绍了如何在Objective-C环境下,利用NSData和NSString进行AES加密与解密操作。 首先,AES是一种块加密算法,它将数据分为128位的块进行处理。在iOS中,通常通过CommonCrypto库来实现AES的加解密...

    iOS NSData 详细使用说明

    在iOS开发领域,`NSData`类扮演着至关重要的角色,它是Foundation框架的一部分,主要用于处理二进制数据。本文档旨在全面解析`NSData`的使用方法、功能特性以及在实际开发中的应用技巧,帮助开发者深入理解并高效...

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    总结来说,iOS开发中,利用NSData和NSDictionary的相互转换可以方便地处理数据的存储和传递。通过`NSKeyedArchiver`和`NSKeyedUnarchiver`,我们可以轻松地在两者之间进行序列化和反序列化操作。在处理JSON数据时,`...

    NSData与NSDictionary、JSON数据类型相互转换

    在本文中,我们将探讨如何使用NSData与其他类型,特别是NSDictionary和JSON数据进行转换。 首先,NSData允许开发者将各种数据类型(如结构体、图像等)转换为二进制格式,以便于存储或在网络上传输。例如,在提供的...

    IOS应用源码——NSData.rar

    在iOS应用开发中,NSData是Objective-C中的一个基础类,用于处理各种形式的数据,包括二进制、文本或图像数据。这个"NSData"压缩包文件很可能是包含了一系列关于如何使用NSData进行数据操作的示例代码或者教程。...

    NSData-Crypto:NSDataNSString 包装器中的 MD5、SHA1 和许多其他常见摘要方法

    NSData+Crypto是一个 Mac 和 iOS 的NSData和NSString包装器,用于 CommonCrypto 框架的摘要方法。 包装了以下摘要函数: MD2 MD4 MD5 沙1 sha224 sha256 sha384 sha512 所有摘要函数都可用于NSData 、 ...

    iOS数组和字典转JSON格式

    本教程将详细讲解如何将iOS中的数组和字典转换为JSON格式,这对于发送网络请求或保存本地数据尤为关键。 首先,我们要了解JSON的基本结构。JSON是一种基于文本的数据交换格式,它主要由对象(字典)和数组构成。在...

    Ascii85-Encoding-Categories:NSData 和 NSString 的简单类别以支持将它们编码为 Ascii85。 这些类别采用 RFC 1924 Ascii85 字符集

    在IT行业中,编码和解码是数据传输与存储的关键环节,Ascii85编码是一种用于高效、节省空间地表示二进制数据的机制。本文将深入探讨Ascii85编码,以及如何在Objective-C中利用类别(Category)为NSData和NSString...

    ios_NSString转成16进制Demo

    1. **获取NSString的UTF8编码**:NSString可以通过`dataUsingEncoding:`方法转换为NSData,通常选择UTF8编码。 ```objc NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; ``` 2. **遍历NSData的每一...

    数据类型之间的转换

    ios相关数据类型之间的互换//NSData 转 NSString //NSString 转 NSData//NSArray 转 NSString char 转NSString

    iOS gzip压缩数据

    总结起来,iOS应用中实现gzip数据压缩主要依赖于ASIHTTPRequest框架,它可以便捷地处理请求和响应的gzip压缩与解压缩。同时,GZipUtil工具类提供了一些辅助功能,方便开发者对NSData对象进行gzip操作。通过合理利用...

    Base64:NSData和NSString的Objective-C Base64添加

    以下性能指标可用于与2012年提供的库进行比较,并且可能无法反映当前的性能。 如有疑问,请使用系统提供的功能。 用法:可可豆脚-已淘汰 将以下行添加到您的Podfile中: source '...

    iOS归档与解归档,持久化存储

    例如,`NSFileManager`用于文件的创建、删除、复制等操作,`NSData`可以读取文件内容并转化为字节数组,`NSString`则可以处理文本文件的读写。在实际使用时,还需要注意文件权限、沙盒限制以及错误处理等问题。 在...

    NSData扩展

    ### NSData扩展:深入解析与应用 在iOS开发中,`NSData`类是处理二进制数据的核心类之一,它提供了一系列方法来存储、检索和操作数据。然而,原生的`NSData`类并不包含所有开发者可能需要的功能,尤其是在处理如...

    NSData+AESCrypt库

    ios下面的AES加解密库 @interface NSData (AESCrypt) - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:...

    base64-utf8编码的NSString转化为NSString

    在解析xib文件的时候发现有的节点内容的编码是 base64-UTF8,其实这个节点内容的编码顺序是先将NSString转化为utf8格式的NSData,再将NSData通过base64加密。刚拿到这样的字符串的时候感觉有点绕,但是仔细分析下来...

    XML文件转化成NSData对象的方法

    在iOS开发中,处理XML数据时,有时需要将XML文件转化为NSData对象,以便于存储、传输或者进一步解析。本文将详细介绍如何实现这一过程,并探讨相关知识点。 首先,让我们看看如何将XML文件转化为NSData对象。在...

Global site tag (gtag.js) - Google Analytics