//TruncatedStepRowtemplate<size_t WIDTH> template<size_t W>TruncatedStepRow<WIDTH>::TruncatedStepRow(const TruncatedStepRow<W>&amp; a, const TruncatedStepRow<W>&amp; b, size_t len, size_t lenIndices, int lenTrim) :StepRow<WIDTH> {a}{cout<<&quot;len=&quot;<<len<<endl; //30cout<<&quot;lenIndices=&quot;<<lenIndices<<endl; //1// cout<<&quot;lenTrim=&quot;<<lenTrim<<endl; //3assert(len+lenIndices <= W);assert(len-lenTrim+(2*lenIndices) <= WIDTH);// unsigned char hash[len-lenTrim];cout<<&quot;colision hash a =&quot;;for(long long unsigned int i=0;i<len;i++){cout<<a.hash[i];}cout<<endl;cout<<&quot;colision hash b =&quot;;for(long long unsigned int i=0;i<len;i++){cout<<b.hash[i];}cout<<endl;for (int i = lenTrim; i < (int)len-lenTrim; i++){hash[i-lenTrim] = a.hash[i] ^ a.hash[i];}// cout<<endl;print_hash(len-lenTrim);if (a.IndicesBefore(b, len, lenIndices)) {std::copy(a.hash+len, a.hash+len+lenIndices, hash+len-lenTrim);std::copy(b.hash+len, b.hash+len+lenIndices, hash+len-lenTrim+lenIndices);} else {std::copy(b.hash+len, b.hash+len+lenIndices, hash+len-lenTrim);std::copy(a.hash+len, a.hash+len+lenIndices, hash+len-lenTrim+lenIndices);}//cout<<endl;//cout<<endl;}相同的值异或应该是0才对,为什么输出还是4或者7 啊??