如何在iOS中将大量数字分解成更易于管理的部分



我想为iOS创建一个应用程序,使用随机的80位数字,但我几乎可以肯定,目前的硬件无法处理这么大的数字。那么把数字分成小块的好方法是什么呢?到目前为止,我能想到的最好方法是将其分解为4个20位块,但我不满意这样做会占用多少处理器容量。谢谢你给我的帮助。

两个int型和一个short型怎么样?得到32 + 32 + 16 = 80位。我不知道您在尝试做什么,但是我现在可能不会担心处理器容量。

如果想用这个数字进行计算,最好使用现有的库,比如GMP,而不是开发自己的库。如果它只是用作散列、加密密钥或类似的东西,则应该使用NSData或原始字节数组。

创建一个malloc的80个布尔值的类不是很有效吗?BOOL类型已经是"true/false",额外的内存开销是一个最小的问题,相当于两个或三个硬编码字符串的内存价值。我将尝试下面的例子:

未测试代码:

@interface KenoBoard : NSObject{
    BOOL * boardSelections;
}
-(BOOL)selectionForPosition:(int)number;
-(void)setSelection:(BOOL)selection forPosition:(int)number;
@end
@implementation KenoBoard
-(id)init{
    if(self = [super init]){
        boardSelections = calloc(80*sizeof(BOOL));
    }
    return self;
}
-(void)dealloc{
    free(boardSelections);
    [super dealloc];
}
-(BOOL)selectionForPosition:(int)number{
    if (number >= 80){
        ...make a NSException here
        @throw exception
    }
    return boardSelections[number];
}
-(void)setSelection:(BOOL)selection forPosition:(int)number{
    if (number >= 80){
        ...make a NSException here
        @throw exception
    }
    boardSelections[number] = selection;  
}
@end

最新更新