在mac os x上,我一直在使用NSSwap * ToHost系列函數來處理無符號整數。什麼是交換籤名整數的字節順序的適當方法?
對於8,16,32和64大小的帶符號整數,這樣做的正確方法是什麼?我見過其他堆棧溢出帖子推薦的ntoh *函數,但它們返回無符號整數。
在mac os x上,我一直在使用NSSwap * ToHost系列函數來處理無符號整數。什麼是交換籤名整數的字節順序的適當方法?
對於8,16,32和64大小的帶符號整數,這樣做的正確方法是什麼?我見過其他堆棧溢出帖子推薦的ntoh *函數,但它們返回無符號整數。
對於帶符號整數,您可以使用相同的方法,只需使用一些轉換來安靜編譯器即可。
如果您將這些值轉換爲無符號整數並返回,您應該沒有問題使用這些函數來進行帶符號交換。 但是:如果你想顯式地將小端數據轉換成大端數據,你不應該使用這些函數,因爲ntoh *函數將不會在大端的體系結構上進行交換。另一方面,如果您只是想確保本地機器的數據轉換爲大端,無論您的本地機器的字節順序如何,這些功能都可以正常工作。
交換僅轉換字節,如果數字有符號或無符號,則不會產生任何影響。 – zaph
@Zaph完全正確。 – trojanfoe