标签:
1.1 十进制转2进制
-(NSString *)binaryFromInteger:(NSInteger)index{ NSString *str = @""; while (index != 1) { NSInteger two = index % 2; str = [NSString stringWithFormat:@"%ld%@",two,str]; index /= 2; } return [NSString stringWithFormat:@"%ld%@",index,str]; }
1.2 十进制转8进制
//十进制转八进制 -(NSString *)octonaryFromInteger:(NSInteger)index{ return [NSString stringWithFormat:@"%lo",index]; }
1.3 十进制转16进制
-(NSString *)hexFromInteger:(NSInteger)index{ return [NSString stringWithFormat:@"%lx",index]; }
2.1 2进制转十进制
-(NSInteger)integerFromBinary:(NSString *)binary{ NSInteger count = binary.length; NSInteger number = 0; for (NSInteger i = count; i > 0; i --) { NSInteger index = [[binary substringWithRange:NSMakeRange(i - 1, 1)] integerValue]; number += index * powf(2, count - i); } return number; }
2.2 8进制转十进制
-(NSInteger)integerFromOctonary:(NSString *)octonary{ NSInteger count = octonary.length; NSInteger number = 0; for (NSInteger i = count; i > 0; i --) { NSInteger index = [[octonary substringWithRange:NSMakeRange(i - 1, 1)] integerValue]; number += index * powf(8, count - i); } return number; }
2.3 16进制转十进制
-(NSInteger)integerFromHex:(NSString *)hex{ NSInteger count = hex.length; NSInteger number = 0; NSDictionary *dict = @{@"0":@"0",@"1":@"1",@"2":@"2",@"3":@"3", @"4":@"4",@"5":@"5",@"6":@"6",@"7":@"7", @"8":@"8",@"9":@"9",@"a":@"10",@"b":@"11", @"c":@"12",@"d":@"13",@"e":@"14",@"f":@"15"}; for (NSInteger i = count; i > 0; i --) { NSString *letter = [hex substringWithRange:NSMakeRange(i - 1, 1)]; NSInteger index = [[dict objectForKey:[letter lowercaseString]] integerValue]; number += index * powf(16, count - i); } return number; }
标签:
原文地址:http://www.cnblogs.com/gulong/p/4993829.html