Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Integer 64-Bit Antara Endian Besar dan Kecil Menggunakan htobe64() dan be64toh()?
Penukaran Integer 64-Bit: Memanfaatkan htobe64() dan be64toh()
Fungsi ntohl() dalam C digunakan terutamanya untuk 32 -nilai bit, meninggalkan pembangun mencari penyelesaian untuk menukar integer 64-bit. Untuk menangani keperluan ini, kami meneroka penggunaan htobe64() dan be64toh() untuk melaksanakan penukaran besar endian kepada kecil endian dengan berkesan.
Ketersediaan htobe64() dan be64toh() berbeza-beza merentas platform. Linux (glibc >= 2.9), OpenBSD, FreeBSD dan NetBSD menyediakan akses terus kepada fungsi ini. Walau bagaimanapun, untuk memastikan keserasian merentas OS yang berbeza, kod prapemproses berikut boleh digunakan:
<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>
Kod ini menyediakan antara muka bersatu merentas platform, membenarkan pembangun menggunakan fungsi dengan fungsi yang diingini. Corak penggunaannya adalah mudah:
<code class="cpp"> uint64_t host_int = 123; uint64_t big_endian; big_endian = htobe64( host_int ); host_int = be64toh( big_endian );</code>
Dengan memanfaatkan htobe64() dan be64toh(), anda memperoleh kaedah yang konsisten dan cekap untuk menukar integer 64-bit antara format endian besar dan endian kecil, tanpa mengira sasaran platform.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Integer 64-Bit Antara Endian Besar dan Kecil Menggunakan htobe64() dan be64toh()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!