Windows上の64bit版Pythonの整数型が32bitの理由

水曜日, 1月 19th, 2011 by

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

元記事
http://www.velocityreviews.com/forums/t648927-sys-maxint-in-python-2-6-1-amd64-on-windows-xp-x64.html

Facebook comments:

comments

Leave a Reply


Get Adobe Flash player
single