I'm making a binary converter for iPhone, and for convert a number from base X to other base I use this method:
+(NSString*)FromXToOtherBase:(unsigned long long)base number:(unsigned long long)number
{
unsigned long long temp_risu=number;
//int i=0;
//base is the destination base
NSMutableArray*rest=[[NSMutableArray alloc] init];
while(temp_risu!=0)
{
NSNumber*rest_=[NSNumber numberWithLongLong:(temp_risu%base)];
[rest addObject:rest_];
temp_risu=temp_risu/base;
rest_=Nil;
}
NSMutableArray*rest_reverse=[[NSMutableArray alloc] init];
for(int i=[rest count]-1;(i>-1);i--)
{
[rest_reverse addObject:[rest objectAtIndex:i]];
}
return [rest_reverse componentsJoinedByString:@""];
}
This method works but when the number becomes bigger and bigger I have problem with the range of unsigned long long type and the conversion becomes unreliable. How Do I solve this problem?