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