美文网首页
iOS-二进制、十进制之间转换

iOS-二进制、十进制之间转换

作者: MonsterNanny | 来源:发表于2017-08-18 10:28 被阅读603次
    #pragma mark 十进制转二进制
    + (NSString *)convertBinarySystemFromDecimalSystem:(NSString *)decimal
    {
        NSInteger num = [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;
    }
    
    #pragma mark 二进制转十进制
    + (NSString *)convertDecimalSystemFromBinarySystem:(NSString *)binary
    {
        NSInteger ll = 0 ;
        NSInteger  temp = 0 ;
        for (NSInteger 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:@"%ld",ll];
        
        return result;
    }
    

    相关文章

      网友评论

          本文标题:iOS-二进制、十进制之间转换

          本文链接:https://www.haomeiwen.com/subject/qhgorxtx.html