1、十进制转换为二进制
/** 十进制转换为二进制 @param decimal 十进制数 @return 二进制数 */ + (NSString *)getBinaryByDecimal:(NSInteger)decimal {
NSString *binary = @""; while (decimal) { binary = [[NSString stringWithFormat:@"%ld", decimal % 2] stringByAppendingString:binary]; if (decimal / 2 < 1) { break; } decimal = decimal / 2 ; }
if (binary.length % 4 != 0) { NSMutableString *mStr = [[NSMutableString alloc]init]; for (int i = 0; i < 4 - binary.length % 4; i++) { [mStr appendString:@"0"]; }
binary = [mStr stringByAppendingString:binary]; } return binary; }
2、十进制转换为十六进制
/** 十进制转换十六进制 @param decimal 十进制数 @return 十六进制数 */ + (NSString *)getHexByDecimal:(NSInteger)decimal { NSString *hex =@""; NSString *letter; NSInteger number; for (int i = 0; i<9; i++) { number = decimal % 16; decimal = decimal / 16; switch (number) { case 10: letter =@"A"; break; case 11: letter =@"B"; break; case 12: letter =@"C"; break; case 13: letter =@"D"; break; case 14: letter =@"E"; break; case 15: letter =@"F"; break; default: letter = [NSString stringWithFormat:@"%ld", number]; } hex = [letter stringByAppendingString:hex]; if (decimal == 0) { break; } } return hex; }
3、 二进制转换为十六进制
/** 二进制转换成十六进制 @param binary 二进制数 @return 十六进制数 */ + (NSString *)getHexByBinary:(NSString *)binary { NSMutableDictionary *binaryDic = [[NSMutableDictionary alloc] initWithCapacity:16]; [binaryDic setObject:@"0" forKey:@"0000"]; [binaryDic setObject:@"1" forKey:@"0001"]; [binaryDic setObject:@"2" forKey:@"0010"]; [binaryDic setObject:@"3" forKey:@"0011"]; [binaryDic setObject:@"4" forKey:@"0100"]; [binaryDic setObject:@"5" forKey:@"0101"]; [binaryDic setObject:@"6" forKey:@"0110"]; [binaryDic setObject:@"7" forKey:@"0111"]; [binaryDic setObject:@"8" forKey:@"1000"]; [binaryDic setObject:@"9" forKey:@"1001"]; [binaryDic setObject:@"A" forKey:@"1010"]; [binaryDic setObject:@"B" forKey:@"1011"]; [binaryDic setObject:@"C" forKey:@"1100"]; [binaryDic setObject:@"D" forKey:@"1101"]; [binaryDic setObject:@"E" forKey:@"1110"]; [binaryDic setObject:@"F" forKey:@"1111"]; if (binary.length % 4 != 0) { NSMutableString *mStr = [[NSMutableString alloc]init];; for (int i = 0; i < 4 - binary.length % 4; i++) { [mStr appendString:@"0"]; } binary = [mStr stringByAppendingString:binary]; } NSString *hex = @""; for (int i=0; i<binary.length; i+=4) { NSString *key = [binary substringWithRange:NSMakeRange(i, 4)]; NSString *value = [binaryDic objectForKey:key]; if (value) { hex = [hex stringByAppendingString:value]; } } return hex; }