3

誰かが私に何XORを説明でき(^)ますか?

char *strReverse(char *str)
{
      char *pb, *pe;

      for (pb = str, pe = str + strlen(str) - 1; pe > pb; ++pb, --pe)
      {
            *pb ^= *pe;
            *pe ^= *pb;
            *pb ^= *pe;
      }
      return str;
}
4

2 に答える 2

3

関数はポインターではありませんが、 を返しますchar*

この関数は文字列を反転します。

このXOR手法は、余分なメモリを使用せずに 2 つの要素を交換するために使用されます。ご覧のとおり、ループは文字列の開始と終了を反復し、2 つcharの を交換します。

于 2012-05-04T06:30:31.043 に答える
1

このような xor の使用は、一時変数を使用せずにメモリ内の 2 つの値を交換する別の方法です。他のビットハックならビットハックがおすすめ

于 2012-05-04T06:32:37.767 に答える