つぎの問題が分かりません。どなたか教えてください。

 unsigned int の数を入力するとその値のビット表現を
逆転する関数bit_reverse()を作れ。

  47をビット逆転すると62464となる。
    47(=0000 0000 0010 1111)
 62464(=1111 0100 0000 0000)

その際逆転する処理はビット演算子(&、|、<<、>>、etc・・・)
を用いること。unsigned intは負の数を扱えない以外は
intと同じように使うことができ、そのビット長は32である。

unsegned int bit_reverse(unsigned int n)
{
・・・・
  ・・・・