ランダム80ビットの番号を使用するiOS用のアプリケーションを作成したいと思いますが、現在のハードウェアではそれほど大きな数字を処理できないことは事実です。番号を小さなものに分割するにはどうすればよいでしょうか?これまでのところ私が考えることのできる最高のものは、それを4つの20ビットブロックに分割することですが、それをどのように処理するプロセッサ容量がどれくらいかかりますと私は満足していません。あなたが私に与えることができる何か助けをありがとう。大きな数字をiOSで管理しやすい部分に分割するにはどうすればよいですか?
答えて
2つのintとshortはどうですか? 32 + 32 + 16 = 80ビットになります。あなたが何をしようとしているのかは分かりませんが、現時点ではプロセッサの容量については心配していません。
その数値で計算したい場合は、自分で開発する代わりにGMPなどの既存のライブラリを使用する方がよいでしょう。ハッシュ、暗号鍵などのように使用されている場合は、NSData
または生のバイト配列を使用する必要があります。
mallocの80ブールクラスのクラスを作ることは十分効率的ではないでしょうか? BOOL型はすでに "真/偽"であり、余分なメモリオーバーヘッドは最小限の懸念事項であり、ハードコードされた2〜3の文字列のメモリに相当します。私は、以下の例のためにしようとするでしょう:
UN-テストされたコード:
@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
BOOLは実際の言語のネイティブタイプではないため、BOOLは1ビットではなく、objc.hで として定義されています。 typedef signed char BOOL; –
ありがとう@Nathan、更新しました。そのメモでは、Cのためのネイティブの1ビットのブール値に関するリファレンスがありますか?私は1つを見つけることができませんでした。 –
実際にはstructのフィールドのビット数を指定することができます。例えば、struct foo {int a:2; int b:1; int c:4; } –
- 1. 文字列をiOSの部分文字列に分割するにはどうすればよいですか?
- 2. javascriptで数字を小さな部分に分割するにはどうすればよいですか?
- 3. 文字列を " - "で始まる部分に分割するにはどうすればよいですか?
- 4. 文字列をPerlで2つの部分に分割するにはどうすればよいですか?
- 5. 文字列を3つの部分に分割するにはどうすればよいですか?
- 6. イメージを複数の部分に分割するにはどうすればよいですか?
- 7. 大きなEcto.Queryをより細かく分割するにはどうすればいいですか?
- 8. 大きなサービスファクトリ()を小さなコードブロックに分割するにはどうすればよいですか?
- 9. 分割トークンをRubyで分割された部分の2番目の部分に保持するにはどうすればよいですか?
- 10. 大きな画像を1つ使用し、それをウェブサイトの小さな部分に分割するにはどうすればよいですか?
- 11. ユーザーを管理者と出席者に分割するにはどうすればよいですか?
- 12. クライアントコードを壊さずに大きなパッケージを分割するにはどうすればよいですか?
- 13. SAS-大きなデータセットを特定の要件で分割するにはどうすればよいですか?
- 14. URLをBashの別々の部分に分割するにはどうすればよいですか?
- 15. バッチで文字列を複数の変数に分割するにはどうすればよいですか?
- 16. 大きなファイルを分割するにはどうすればよいですか?
- 17. 大きな「マクロ」クラスを分割するにはどうすればよいですか?
- 18. JavaScriptで複数の部分文字列のうちの最初の文字列に文字列を分割するにはどうすればよいですか?文字列を分割:されて、私は "ABC" に "ABC" と "defbarghi" とs2にS1を分割し、 "defooghi" するにはどうすればよい
- 19. Perlでは、大きな配列の部分を処理するために複数のスレッドを使用するにはどうすればよいですか?
- 20. UITableViewでセクションを分割するにはどうすればよいですか?
- 21. JavaScriptでこの大きな文字列を複数の文字列に分割するにはどうすればよいですか?
- 22. Googleマップのディスプレイを同じ数の部品に分割するにはどうすればよいですか?
- 23. アプリをモジュールに分割するにはどうすればよいですか?
- 24. ルーチンをスレッドに分割するにはどうすればよいですか?
- 25. kableがページ間で分割されないようにするにはどうすればいいですか?
- 26. 複数の空白やタブを分割するにはどうすればよいですか?
- 27. 巨大なWordPressマルチサイトデータベースを別々のMySQLデータベースに分割するにはどうすればよいですか?
- 28. 数字を含む文字列を分割するにはどうすればいいですか
- 29. 文字列をbashの2つの変数に分割するにはどうすればよいですか?
- 30. 8文字列を4つの変数に分割するにはどうすればよいですか?
あなたはその数をどうしたいですか? – omz
ここで整数を話していると思いますか? –
私はキノアプリケーションを作成しようとしています。キノは80個の数字(1〜80)の配列を特徴としています。私の考えは、2進数でボードを表現することです。ここで、0はそれぞれ「数」が選択されていないことを意味し、各1はそれを意味します。 20個の乱数を生成し、それぞれを20個までのユーザーが選択した数の別のセットと比較するよりも、これが大幅に速くなると思います。 – 1every