Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 mac os x 上,我一直在使用 NSSwap*ToHost 系列函数来处理无符号整数。
对于大小为 8、16、32 和 64 的有符号整数,正确的方法是什么?我已经看到其他堆栈溢出帖子中推荐的 ntoh* 函数,但它们返回无符号整数。
您可以对有符号整数使用相同的方法,只需使用一些强制转换来使编译器安静下来。
如果将值转换为无符号整数并返回,则使用这些函数进行有符号字节顺序交换应该没有问题。但是:如果您想将小端数据显式转换为大端数据,则不应使用这些函数,因为 ntoh* 函数不会在大端架构上执行交换。另一方面,如果您只想确保将本地计算机中的数据转换为大端,无论您的本地计算机的字节序如何,这些函数都可以正常工作。