<iOS>十进制数转换成其他进制数

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值