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