iOS_NSdata/NSString/Byte等的转换
来源:互联网 发布:股票分析算法方法 编辑:程序博客网 时间:2024/06/16 18:02
项目时期, 遇到过的各种数据类型的转换, 希望对大家有所帮助!
/**
* 1. NSData-> NSString
*/
NSData *data;
NSString *str = [[NSStringalloc] initWithData:dataencoding:NSUTF8StringEncoding];
/**
* 2. NSString-> NSData
*/
NSString *string = @"abc123";
NSData *aData = [stringdataUsingEncoding: NSUTF8StringEncoding];
/**
* 3. NSData-> Byte数组
*/
NSString *testStr = @"1234567890";
NSData *testData = [testStrdataUsingEncoding: NSUTF8StringEncoding];
Byte *testByte = (Byte *)[testDatabytes];
for(int i=0;i<[testDatalength];i++)
NSLog(@"testByte = %d\n",testByte[i]);
/**
* 4. 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 = [[NSDataalloc] initWithBytes:bytelength:24];
/**
* 5. Byte数组->16进制数
*/
Byte *bytes = (Byte *)[aDatabytes];
NSString *hexStr=@"";
NSData *encryData;
for(int i=0;i<[encryDatalength];i++)
{
NSString *newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16进制数
if([newHexStr length]==1){
hexStr = [NSStringstringWithFormat:@"%@0%@",hexStr,newHexStr];
}
else {
hexStr = [NSStringstringWithFormat:@"%@%@",hexStr,newHexStr];
}
}
NSLog(@"bytes的16进制数为:%@",hexStr);
/**
* 6. 16进制数->Byte数组
*/
///// 将16进制数据转化成Byte数组
NSString*hexString =@"3e435fab9c34891f";//16进制字符串
int j=0;
Byte bytes[128]; ///3ds key的Byte 数组, 128位
for(int i=0;i<[hexStringlength];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 = [[NSDataalloc] initWithBytes:byteslength:128];
NSLog(@"newData=%@",newData);
/**
* 7. NSData 与 UIImage
*/
/*--------------- NSData->UIImage -------------*/
NSData *imageData;
UIImage *aimage = [UIImageimageWithData:imageData];
//例:从本地文件沙盒中取图片并转换为NSData
NSString *path = [[NSBundlemainBundle] bundlePath];
NSString *name = [NSStringstringWithFormat:@"ceshi.png"];
NSString *finalPath = [path stringByAppendingPathComponent: name];
NSData *imageData1 = [NSDatadataWithContentsOfFile: finalPath];
UIImage *aimage1 = [UIImageimageWithData: imageData1];
/*-------------- UIImage-> NSData ------------*/
NSData *imageData2 = UIImagePNGRepresentation(aimage);
- iOS_NSdata/NSString/Byte等的转换
- Objective-C NSString NSData Byte等转换
- Objective-C NSString NSData Byte等转换
- Objective-C NSString NSData Byte等转换
- Objective-C NSString NSData Byte CGFloat等转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- NSdata 与 NSString,Byte数组,UIImage 的相互转换
- NSdata与NSString,Byte数组,UIImage的相互转换
- NSdata 与 NSString,Byte数组,UIImage 的相互转换
- IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- NSdata 与 NSString,Byte数组,UIImage 的相互转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- NSdata 与 NSString,Byte数组,UIImage 的相互转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- NSData 与 NSString,Byte数组,UIImage 的相互转换
- DAO设计模式简介
- pcl运行:Error: "invalid device function" complaining about cuda/tsdf_volume.cu:170
- 向Android.mk中添加cpp文件编译快捷方法
- matlab中sort函数的用法
- 首届CCF软件能力认证试题题目2:窗口(答案+代码)
- iOS_NSdata/NSString/Byte等的转换
- 第十五周项目三(2)
- 在java后台用javacript写一段小代码实现html页面颜色的自动改变
- Matlab中数组元素引用
- R语言绘图
- [BZOJ 2081]POI 2010 Beads
- 周鸿祎:如何做好产品经理
- 第15周项目2-阅读程序
- ActivityManager: Error type 3