0
我正在做一个二进制转换器为iPhone,并转换我从基地X到其它基数的数字使用此方法:为unsigned long long值范围
+(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:@""];
}
这种方法的作品,但是当数变大和更大的我有问题的无符号long long类型的范围和转换变得不可靠。 我该如何解决这个问题?
这很奇怪......如果你说转换变得不可靠,那么你的代码不健壮。你的代码必须是可靠的,如果有一个条件不能处理,它应该会产生一个错误。 – Merlevede
“不可靠”意味着当我转换大数字(例如1111111111)时,转换不正确,但如果我删除一个数字(111111111),则转换是正确的。因为这个原因,我认为这是一个表示问题 – Alessio
你转换你的大号码到哪个基地? – Merlevede