[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
little endianおよびbig endianの両方に対応するように以下のローテーション関数を作れ。
b, w, dはローテートする値、nはローテートするbit数を表す。

BYTE rotateByteRight(BYTE b, BYTE n);
BYTE rotateByteLeft(BYTE b, BYTE n);
WORD rotateWordRight(WORD w, WORD n);
WORD rotateWordLeft(WORD w, WORD n);
DWORD rotateDwordRight(DWORD d, DWORD n);
DWORD rotateDwordLeft(DWORD d, DWORD n);

ただしlittle endianとbig endianのコードを切り替えは、以下のように行うものとする

#ifdef __LITTLE_ENDIAN__
// little endianのコード
#else
// big endianのコード
#endif

[3] 環境
 [3.1] OS:PPCおよびIA32のLinux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:今日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
標準ライブラリは使わない