例えば:
1. 32 ビット IP アドレス (IPv4) を変換するには:
unsigned char ByteAddress[4]; unsigned int* IntegerAddress; IntegerAddress = reinterpret_cast<unsigned int*> &ByteAddress ;
次に、IntegerAddress を使用して IP アドレスを比較できます。
2. 128 ビット IP アドレス (IPv6) を変換するには:
unsigned char ByteAddress[16]; uint64_t* LongAddress; LongAddress = reinterpret_cast<uint64_t*> &ByteAddress
次に、LongAddress [0] と LongAddress[1] を使用して IP アドレスを比較します。
ビットシフト演算子を使用するよりも優先されますか (高速であるため)? それは良いプログラミングの練習ですか?すべてのプラットフォーム (特に UNIX と Windows 64) とコンパイラ (C++、VS2010) で動作しますか?