//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; //30 cout<<&quot;lenIndices=&quot;<<lenIndices<<endl; //1 // cout<<&quot;lenTrim=&quot;<<lenTrim<<endl; //3 assert(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 啊??