Objective c 您是否需要输入64&;DecodeInt64是否适用于无符号整数?

Objective c 您是否需要输入64&;DecodeInt64是否适用于无符号整数?,objective-c,cocoa,Objective C,Cocoa,快速提问,当我使用编码器和解码器,我有一行如下 //.H File @property uint64 docGroup; //** declared in interface //.M file [aCoder encodeInt64:_docGroup forKey:@"docGroup"]; 由于我使用的是无符号int64,它会正确地存储所有的“64”位吗?恐怕它会留下最后一点。我很好奇这种情况下的行为是什么。有人知道吗 我找不到编码为unsig

快速提问,当我使用编码器和解码器,我有一行如下

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

//.M file
[aCoder encodeInt64:_docGroup forKey:@"docGroup"];
由于我使用的是无符号int64,它会正确地存储所有的“64”位吗?恐怕它会留下最后一点。我很好奇这种情况下的行为是什么。有人知道吗


我找不到编码为unsignedint64的函数,如果有,请告诉我。

是的,应该可以;有符号和无符号64位整数都使用所有64位

使用(在调试器中)进行测试:


如果我正确理解了处的答案,则将
uint64
转换为带符号的
int64
通常取决于实现, 但是在具有负数的2的补码表示的体系结构上,转换不会改变位模式


因此,从
uint64
int64
再回到
uint64
的转换总是会产生原始值。

感谢您的回答,很难在两者之间进行选择。我希望我能接受你的两个答案。谢谢你的回答,我很感激!
uint64_t u64 = 0xfedcba9876543210ULL;
int64_t i64 = (int64_t)u64;
u64 = (uint64_t)i64;