64 位元整數轉換:利用htobe64() 和be64toh()
C 中的ntohl() 函數主要用於32位元值,讓開發人員尋求轉換64 位元整數的解決方案。為了滿足這項需求,我們探索使用 htobe64() 和 be64toh() 來有效執行大端到小端的轉換。
htobe64() 和 be64toh() 的可用性因平台而異。 Linux (glibc >= 2.9)、OpenBSD、FreeBSD 和 NetBSD 提供對這些功能的直接存取。但是,為了確保跨不同作業系統的相容性,可以使用以下預處理器程式碼:
<code class="cpp">#if defined(__linux__) # include <endian.h> #elif defined(__FreeBSD__) || defined(__NetBSD__) # include <sys/endian.h> #elif defined(__OpenBSD__) # include <sys/types.h> # define be16toh(x) betoh16(x) # define be32toh(x) betoh32(x) # define be64toh(x) betoh64(x) #endif</code>
此程式碼提供跨平台的統一接口,允許開發人員使用具有所需功能的函數。使用模式很簡單:
<code class="cpp"> uint64_t host_int = 123; uint64_t big_endian; big_endian = htobe64( host_int ); host_int = be64toh( big_endian );</code>
透過利用htobe64() 和be64toh(),您可以獲得在大端和小端格式之間轉換64 位元整數的一致且高效的方法,無論目標如何平台。
以上是如何使用 htobe64() 和 be64toh() 在大端和小端之間轉換 64 位元整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!