清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | 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 alloc] initWithBytes: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 alloc] initWithBytes: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); |