Windows上でPythonを使っている場合、64ビット版のPythonを使っていても整数型の上限が2^31-1になっている、それっぽい説明を見つけました。
Q. Windows XP 64bit環境上でPython 2.6.1のsys.maxintを実行したら32bitの値が返ってきた。なんで?
やあ、amd64版のPython2.6.1をWindows XP 64ビット環境にいれたんだよね。sys.maxintは、9223372036854775807 (or 2 ^63-1)とおもって期待してたんだけど、なぜか、 2147483647 (i.e., 2^31-1) ってでるんだよね。これじゃ32ビットシステムと同じだよ。。これって仕様なの?それともバグとか、インストールに失敗したとかかな?
-lin
A. 仕様です。
Microsoftの天才が、C言語のLongは常に32ビットって決めたのが原因です。Unixでは、最低でも32ビット。たいていはポインターのサイズ(64ビットシステムなら64ビット)と同じなんだけどね。
-Tim Roberts