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;