human
灰色のコードを実装し、指定されたコードの後に特定の回転方向に次のシーケンスコードを返すJava関数を書きます
gpt
以下は、指定された回転方向で、指定されたグレイ・コードの次のグレイ・コードを生成する関数である：
```java
public int nextGrayCode(int code, boolean clockwise) {
    int xor = code ^ (code >> 1);
    return clockwise ? xor : xor ^ 0xAAAAAAAA;
}
```
これは次のように動作する：

コードをそれ自身の右シフト・バージョンとXORする。
時計回りのパラメータを使って、XORの結果か、4ビットのグループを交互に反転させるパターンでXORした結果のどちらかを選ぶ（これは反時計回りの回転の「回り込み」のケースを処理する）。

例えば
nextGrayCode(0, true); // 1
nextGrayCode(1, true); // 3
nextGrayCode(3, true); // 2
nextGrayCode(2, true); // 6
nextGrayCode(6, false); // 7
nextGrayCode(7, false); // 5


この関数は、どちらかの方向へのインクリメントと、シーケンスの両端での折り返しを扱います。