iOS 十进制 二进制 转换

来源:互联网 发布:梦幻西游玩着网络错误 编辑:程序博客网 时间:2024/04/29 05:27


//十进制转二进制

- (NSString *)toBinarySystemWithDecimalSystem:(NSInteger)decimal

{

    NSInteger num = decimal;//[decimal intValue];

    NSInteger remainder = 0;      //余数

    NSInteger divisor = 0;        //除数

    

    NSString * prepare = @"";

    

    while (true)

    {

        remainder = num%2;

        divisor = num/2;

        num = divisor;

        prepare = [prepare stringByAppendingFormat:@"%ld",remainder];

        

        if (divisor == 0)

        {

            break;

        }

    }

    

    NSString * result = @"";

    for (NSInteger i = prepare.length - 1; i >= 0; i --)

    {

        result = [result stringByAppendingFormat:@"%@",

                  [prepare substringWithRange:NSMakeRange(i , 1)]];

    }

    

    return result;

}






//  二进制转十进制

+ (NSString *)toDecimalSystemWithBinarySystem:(NSString *)binary

{

    int ll = 0 ;

    int  temp = 0 ;

    for (int i = 0; i < binary.length; i ++)

    {

        temp = [[binary substringWithRange:NSMakeRange(i, 1)] intValue];

        temp = temp * powf(2, binary.length - i - 1);

        ll += temp;

    }

    

    NSString * result = [NSString stringWithFormat:@"%d",ll];

    

    return result;

}


0 0