標籤:十進位 nss tab lse 轉化 val integer ima rto
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 10進位 int類型@return 16進位*/+ (NSString*)changDecimalToHex:(NSInteger)decimal { NSString* intDecimalStr = [[NSString alloc] initWithFormat:@"%1lx", (long)decimal]; NSString* hexString = [NSString stringWithFormat:@"%@", intDecimalStr]; if (hexString.length == 5) { return [[NSString stringWithFormat:@"0%@", hexString] uppercaseString]; } else { return [hexString uppercaseString]; }}
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;}
4、十六進位轉二進位
/** 十六進位轉換為二進位 @param hexString 十六進位數 @return 位元 */+ (NSString *)getBinaryByHexString:(NSString *)hexString { NSMutableDictionary *hexDic = [[NSMutableDictionary alloc] initWithCapacity:16]; [hexDic setObject:@"0000" forKey:@"0"]; [hexDic setObject:@"0001" forKey:@"1"]; [hexDic setObject:@"0010" forKey:@"2"]; [hexDic setObject:@"0011" forKey:@"3"]; [hexDic setObject:@"0100" forKey:@"4"]; [hexDic setObject:@"0101" forKey:@"5"]; [hexDic setObject:@"0110" forKey:@"6"]; [hexDic setObject:@"0111" forKey:@"7"]; [hexDic setObject:@"1000" forKey:@"8"]; [hexDic setObject:@"1001" forKey:@"9"]; [hexDic setObject:@"1010" forKey:@"A"]; [hexDic setObject:@"1011" forKey:@"B"]; [hexDic setObject:@"1100" forKey:@"C"]; [hexDic setObject:@"1101" forKey:@"D"]; [hexDic setObject:@"1110" forKey:@"E"]; [hexDic setObject:@"1111" forKey:@"F"]; NSString *binary = @""; for (int i = 0; i < [hexString length]; i++) { NSString *key = [hexString substringWithRange:NSMakeRange(i, 1)]; NSString *value = [hexDic objectForKey:key.uppercaseString]; if (value) { binary = [binary stringByAppendingString:value]; } } return binary;}
5、十六進位轉十進位
/** 將十六進位轉化為十進位 @param hexString 16進位 nsstring類型 @return 10進位 */+ (NSInteger)changHexToDecimal:(NSString*)hexString { NSString* temp10 = [NSString stringWithFormat:@"%lu", strtoul([hexString UTF8String], 0, 16)]; int cycleNumber = [temp10 intValue]; return cycleNumber;}
iOS開發進位轉換