##
7.2.2 長整数型オブジェクト (long integer object)

`PyLongObject`
  この `PyObject` のサブタイプは長整数型を表現します。

PyTypeObject `PyLong_Type`
  この `PyTypeObject` のインスタンスは Python 長整数型を表現します。これは `types.LongType` と同じオブジェクトです。

int `PyLong_Check`( | PyObject *p)

  引数が `PyLongObject` か `PyLongObject` のサブタイプのときに真を返します。 バージョン2.2 以降で変更された 仕様: サブタイプを引数にとれるようになりました

int `PyLong_CheckExact`( | PyObject *p)

  引数が `PyLongObject` 型で、かつ `PyLongObject` 型のサブタイプでないときに真を返します。 バージョン2.2 以降で新規追加された 仕様です。

PyObject* `PyLong_FromLong`( | long v)

  戻り値: 新たな参照.
  v から新たな `PyLongObject` オブジェクトを生成して返します。 失敗のときには `NULL` を返します。

PyObject* `PyLong_FromUnsignedLong`( | unsigned long v)

  戻り値: 新たな参照.
  C の `unsigned long` 型から新たな `PyLongObject` オブジェクト を生成して返します。 失敗のときには `NULL` を返します。

PyObject* `PyLong_FromLongLong`( | long long v)

  戻り値: 新たな参照.
  C の `long long` 型から新たな `PyLongObject` オブジェクトを 生成して返します。失敗のときには `NULL` を返します。

PyObject* `PyLong_FromUnsignedLongLong`( | unsigned long long v)

  戻り値: 新たな参照.
  C の `unsigned long long` 型から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには `NULL` を返します。

PyObject* `PyLong_FromDouble`( | double v)

  戻り値: 新たな参照.
  v の整数部から新たな `PyLongObject` オブジェクトを生成して 返します。失敗のときには `NULL` を返します。

PyObject* `PyLong_FromString`( | char *str, char **pend, int base)

  戻り値: 新たな参照.
  str の文字列値に基づいて、新たな `PyLongObject` を返します。 このとき base を基数として文字列を解釈します。 pend が `NULL`でなければ、 `*pend` は str 中で 数が表現されている部分以後の先頭の文字のアドレスを指しています。 base が `0` ならば、str の先頭の文字列に基づいて 基数を決定します: もし str が `'0x'` または `'0X'` で始まっていれば、基数に 16 を使います; str が `'0'` で始まっていれば、基数に 8 を使います; その他の場合には基数に 10 を 使います。base が `0` でなければ、base は `2` 以上 `36` 以下の数でなければなりません。先頭に空白がある場合は 無視されます。数字が全くない場合、`ValueError` が送出 されます。

PyObject* `PyLong_FromUnicode`( | Py_UNICODE *u, int length, int base)

  戻り値: 新たな参照.
  Unicode の数字配列を Python の長整数型に変換します。最初のパラメタ u は、 Unicode 文字列の最初の文字を指し、length には 文字数を指定し、base には変換時の基数を指定します。 基数は範囲 [2, 36] になければなりません; 範囲外の基数を指定すると、 `ValueError` を送出します。 バージョン1.6 以降で新規追加された 仕様です。

PyObject* `PyLong_FromVoidPtr`( | void *p)

  戻り値: 新たな参照.

  Python 整数型または長整数型をポインタ p から生成します。 ポインタに入れる値は `PyLong_AsVoidPtr()` を使って 得られるような値です。 バージョン1.5.2 以降で新規追加された 仕様です。

long `PyLong_AsLong`( | PyObject *pylong)

  pylong の指す長整数値を、 C の `long` 型表現で返します。 pylong が `LONG_MAX` よりも 大きい場合、 `OverflowError` を送出します。

unsigned long `PyLong_AsUnsignedLong`( | PyObject *pylong)

  pylong の指す長整数値を、 C の `unsigned long` 型表現で返します。 pylong が `ULONG_MAX` よりも 大きい場合、 `OverflowError` を送出します。

long long `PyLong_AsLongLong`( | PyObject *pylong)

  pylong の指す長整数値を、 C の `long long` 型表現で返します。 pylong が `long long` で表せない場合、 `OverflowError` を送出します。 バージョン2.2 以降で新規追加された 仕様です。

unsigned long long `PyLong_AsUnsignedLongLong`( | PyObject *pylong)

  pylong の指す値を、 C の `unsigned long long` 型表現で 返します。 pylong が `unsigned long long` で表せない場合、 正の値なら `OverflowError` を、負の値なら `TypeError` を送出します。 バージョン2.2 以降で新規追加された 仕様です。

unsigned long `PyLong_AsUnsignedLongMask`( | PyObject *io)

  Python 長整数値を、 オーバフローチェックを行わずに C の `unsigned long` 型表現で返します。 バージョン2.3 以降で新規追加された 仕様です。

unsigned long `PyLong_AsUnsignedLongLongMask`( | PyObject *io)

  Python 長整数値を、 オーバフローチェックを行わずに C の `unsigned long long` 型表現で返します。 バージョン2.3 以降で新規追加された 仕様です。

double `PyLong_AsDouble`( | PyObject *pylong)

  pylong の指す値を、 C の `double` 型表現で返します。 pylong が `double` を使って近似表現できない場合、 `OverflowError` 例外を送出して `-1.0` を返します。

void* `PyLong_AsVoidPtr`( | PyObject *pylong)

  Python の整数型か長整数型を指す pylong を、 C の `void` ポインタに変換します。pylong を変換できなければ、 `OverflowError` を送出します。この関数は `PyLong_FromVoidPtr()` で値を生成するときに使うような `void` ポインタ型を生成できるだけです。 バージョン1.5.2 以降で新規追加された 仕様です。