Pythonの整数型(int)は、その実装により、非常に大きな数値を扱うことが可能です。この記事では、Pythonの整数型の実装について詳しく説明します。
Pythonの整数型の特性
Pythonの整数型は、C/C++のような低レイヤーのコーディングをしているプログラマが整数型のメモリ使用量を気にしなければならないのとは異なり、Pythonプログラマは整数にどの型を使うか考える必要はありません。また、Pythonの整数型はとてつもなく大きい数を演算しても精度が失われることはありません。
Pythonの整数型の実装
Pythonの整数型は、以下のstructで表現されます。
struct _longobject {
PyObject_VAR_HEAD
digit ob_digit[1];
};
このstructは、整数値の各桁を格納するob_digit
と、ob_digit
配列の長さと整数値の符号(正か負)の2つを格納するob_size
で整数値を表現します。
Pythonの整数型の最適化
Pythonのint
型はイミュータブルなので、Pythonインタプリタはプログラム実行前に-5から256までの全ての数をあらかじめ作っておき、必要になった時に利用します。
まとめ
- Pythonの整数型は、その実装により、非常に大きな数値を扱うことが可能です。これはPythonの強力な特性の一つであり、Pythonを使うプログラマにとっては非常に便利です。