1

簡単な質問です。エンコーダーとデコーダーを使用していて、次のような行がある場合...

//.H File
@property uint64           docGroup;            //** declared in interface

//.M file
[aCoder encodeInt64:_docGroup forKey:@"docGroup"];

unsigned int64 を使用しているため、すべての「64」ビットを適切に格納できますか? 最後の部分を残すのではないかと心配しています。この場合の挙動が気になります。誰でも知っていますか?

関数 encodeUnsignedInt64 が見つかりませんでした。ある場合はお知らせください。

4

2 に答える 2

1

C での Signed から unsigned への変換 での回答を理解していれば、常に安全ですか? uint64通常、符号付きへの変換int64は実装に依存しますが、負数の 2 の補数表現を使用するアーキテクチャでは、変換によってビット パターンが変更されることはありません。

したがって、 から への変換およびからuint64への変換では、常に元の値が生成されます。int64uint64

于 2013-05-16T20:04:58.023 に答える
1

ええ、それでいいはずです。符号付きと符号なしの両方の 64 ビット整数は、すべての 64 ビットを使用します。

(デバッガーで) テストします。

uint64_t u64 = 0xfedcba9876543210ULL;
int64_t i64 = (int64_t)u64;
u64 = (uint64_t)i64;
于 2013-05-16T19:53:30.713 に答える