1、创建RadixConvert类
2、RadixConvert.h文件代码
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger,RadixType){
RadixType_2 = 2,
RadixType_8 = 8,
RadixType_10 = 10,
RadixType_16 = 16,
};
@interface RadixConvert : NSObject
+ (NSString *)radixOf10Number:(NSInteger)value toOtherRadix:(RadixType)radixType;
@end
3、RadixConvert.m文件代码
#import "RadixConvert.h"
@implementation RadixConvert
+ (NSString *)radixOf10Number:(NSInteger)value toOtherRadix:(RadixType)radixType{
NSInteger jinZhi = radixType;
NSMutableString *testStr = [[NSMutableString alloc]initWithCapacity:0];
NSInteger shang = value / jinZhi;
NSInteger yuShu = value % jinZhi;
if (jinZhi == 16) {
if (yuShu < 10) {
[testStr appendString:[NSString stringWithFormat:@"%ld",(long)yuShu]];
}
else{
[testStr appendString:[self radix_10_Radix_16:yuShu]];
}
}
else{
[testStr appendString:[NSString stringWithFormat:@"%ld",(long)yuShu]];
}
while (shang != 1 && shang != 0) {
yuShu = shang % jinZhi;
shang = shang / jinZhi;
if (jinZhi == 16) {
if (yuShu < 10) {
[testStr appendString:[NSString stringWithFormat:@"%ld",(long)yuShu]];
}
else{
[testStr appendString:[self radix_10_Radix_16:yuShu]];
}
}
else{
[testStr appendString:[NSString stringWithFormat:@"%ld",(long)yuShu]];
}
}
[testStr appendString:[NSString stringWithFormat:@"%ld",(long)shang]];
NSMutableString *tempStr = [[NSMutableString alloc]initWithCapacity:0];
NSInteger count = testStr.length;
for (NSInteger i = 0; i < count; i ++) {
unichar c = [testStr characterAtIndex:count - 1 - i];
NSString *tStr = [NSString stringWithFormat:@"%c",c];
[tempStr appendString:tStr];
}
return tempStr;
}
+ (NSString *)radix_10_Radix_16:(NSInteger)shu{
NSString *tempStr = @"";
switch (shu) {
case 10:
tempStr = @"A";
break;
case 11:
tempStr = @"B";
break;
case 12:
tempStr = @"C";
break;
case 13:
tempStr = @"D";
break;
case 14:
tempStr = @"E";
break;
case 15:
tempStr = @"F";
break;
default:
break;
}
return tempStr;
}
@end