Linux の system(3) の返り値がよくわからない

anarchy golf - exit status をやってみようかと思って、取りあえず system の man を読む。すると

execve() が /bin/sh を呼び出すのに失敗した時には 127 を、別のエラーがあった時には -1 を、それ以外の時はコマンドの返り値を返す。
string の値が NULL のときは、 system() はシェルが利用可 能ならゼロ以外の値を返し、利用不可ならゼロを返す。
system() は他の子プロセスのウエイトステータスには影響を与えない。

と書いてあるので、system("false") は 1、system("exit 255") は 255 を返すのかと思たのだけど、実際はそれを 256 倍した値が返ってくる。なんでだろう。
ググった。

エラーが発生した場合は (fork に失敗した場合など)、-1 を返す。そうでなければ、コマンドのステータスを返す。後者の場合、ステータスは wait(2) で定義されているフォーマットで返ってくる。従って、コマンドの終了コードは WEXITSTATUS(status) で得ることが出来る。 /bin/sh が実行出来なかった場合、終了ステータスはコマンドが exit (127) を実行した場合と同じになる。

http://www.linux.or.jp/JM/html/LDP_man-pages/man3/system.3.html

WEXITSTATUS は長いのでコードゴルフにはちょっと。