我想为iOS创建一个使用随机80位数的应用程序,但我几乎可以肯定当前的硬件无法处理那么大的数字。那么将数字分成小块的好方法是什么?到目前为止,我能想到的最好的方法是将它分解为4个20位的块,但是我不满意这样做的处理器容量有多大。谢谢你能给我的任何帮助。
答案 0 :(得分:0)
两个整数和一个空头怎么样?这将使你获得32 + 32 + 16 = 80位。我不知道你要做什么,但我现在可能不会担心处理器容量。
答案 1 :(得分:0)
如果您想使用该数字进行计算,最好使用现有的库,例如GMP,而不是开发自己的库。如果它只是用作哈希,加密密钥或类似的东西,则应使用NSData
或原始字节数组。
答案 2 :(得分:0)
创建一个malloc的80个布尔值的课程不是很有效吗? BOOL类型已经是“真/假”,并且额外的内存开销是最小的问题,相当于两个或三个硬编码字符串的内存。我将尝试下面的例子:
UN-TESTED CODE:
@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