iOS開發之進制轉換

- (NSString *) turn10to16:(NSString *)str{  
    int num = [str intValue];  
    NSMutableString * result = [[NSMutableString alloc]init];  
    while (num > 0) {  
        int a = num % 16;  
        char c;  
        if (a > 9) {  
            c = 'A' + (a - 10);  
        }else{  
            c = '0' + a;  
        }  
        NSString * reminder = [NSString stringWithFormat:@"%c",c];  
        [result insertString:reminder atIndex:0];  
        num = num / 16;  
    }  
    return [result autorelease];  
}  
  
- (NSString *) turn10to2:(NSString *)str{  
    int num = [str intValue];  
      
    NSMutableString * result = [[NSMutableString alloc]init];  
    while (num > 0) {  
        NSString * reminder = [NSString stringWithFormat:@"%d",num % 2];  
        [result insertString:reminder atIndex:0];  
        num = num / 2;  
    }  
    return [result autorelease];  
}  
  
- (NSString *) turn2to10:(NSString *)str{  
    int sum = 0;  
    for (int i = 0; i < str.length; i++) {  
        sum *= 2;  
        char c = [str characterAtIndex:i];  
        sum += c - '0';  
    }  
    return [NSString stringWithFormat:@"%d",sum];  
}  
  
- (NSString *) turn16to10:(NSString *)str{  
    int sum = 0;  
    for (int i = 0; i < str.length; i++) {  
        sum *= 16;  
        char c = [str characterAtIndex:i] ;  
        if (c >= 'A') {  
            sum += c - 'A' + 10;  
        }else{  
            sum += c - '0';  
        }  
    }  
    return [NSString stringWithFormat:@"%d",sum];  
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章