>>895そんなのが。ありがとうございます。

関連した質問として接尾辞についてなのですが
32bitのCPU上でgcc 4.0.1を使って試した結果

long long a = 0xffffffffL;
printf("%lld¥n", a);

が4294967295と出力され

long long a = (long)0xffffffffL;
printf("%lld¥n", a);

が-1と出力されます。
Lを付けた時点でlongにはならないのでしょうか。
負数が2の補数でない事はまずあり得ないので
上で出ているようなバイトとオクテットの関係を考慮してこうなってるのかな。