文章目录
  1. 1. iOS 数据转化
    1. 1.1. NSData 与 NSString相互转化
      1. 1.1.1. NSString -> NSData
      2. 1.1.2. NSData -> NSString
    2. 1.2. NSData 与 Byte
    3. 1.3. Byte数组 -> 16进制数
    4. 1.4. 16进制数 -> Byte数组

iOS 数据转化

NSData 与 NSString相互转化

NSString -> NSData

1
2
NSString *str = @"你最帅";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

NSData -> NSString

1
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSData 与 Byte

1
2
Byte *byte = (Byte *)[data bytes];
NSData *data = [[NSData alloc] initWithBytes:byte length:10];

Byte数组 -> 16进制数

1
2
3
4
5
6
7
8
9
10
11
12
13
Byte byte[] = {0,1,2};//000102
NSString *hexStr = @"";
for (int i = 0; i < 3 ; i++) {
NSString *newHexStr = [NSString stringWithFormat:@"%x",byte[i] & 0xff];
if ([newHexStr length] == 1)
hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
else
hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
}

16进制数 -> Byte数组

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
int j=0;
Byte bytes[hexString.length / 2];
for(int i=0;i<[hexStr length];i++)
{
int int_ch; /// 两位16进制数转化后的10进制数
unichar hex_char1 = [hexStr 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 = [hexStr 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++;
}
文章目录
  1. 1. iOS 数据转化
    1. 1.1. NSData 与 NSString相互转化
      1. 1.1.1. NSString -> NSData
      2. 1.1.2. NSData -> NSString
    2. 1.2. NSData 与 Byte
    3. 1.3. Byte数组 -> 16进制数
    4. 1.4. 16进制数 -> Byte数组