113 const auto network_bytes = address_.GetBytes();
114 const auto address_bytes = address.GetBytes();
116 std::uint8_t diff = 0;
117 for (std::size_t byte_index = 0; byte_index < kMaximumPrefixLength / 8; ++byte_index) {
118 std::uint8_t mask_byte = 0;
119 if (byte_index == prefix_length_ / 8) {
120 mask_byte = ~((1 << (8 - prefix_length_ % 8)) - 1);
122 if (byte_index < prefix_length_ / 8) {
126 diff |= (network_bytes[byte_index] ^ address_bytes[byte_index]) & mask_byte;