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

PyLongObject

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

PyTypeObject PyLong_Type

この PyTypeObject のインスタンスは Python 長整数型を表現します。これは Python レイヤにおける longtypes.LongType と同じオブジェクトです。

int PyLong_Check(PyObject *p)

引数が PyLongObjectPyLongObject のサブタイプのときに真を返します。

バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.

int PyLong_CheckExact(PyObject *p)

引数が PyLongObject 型で、かつ PyLongObject 型のサブタイプでないときに真を返します。

バージョン 2.2 で追加.

PyObject* PyLong_FromLong(long v)
Return value: New reference.

v から新たな PyLongObject オブジェクトを生成して返します。失敗のときには NULL を返します。

PyObject* PyLong_FromUnsignedLong(unsigned long v)
Return value: New reference.

Cの unsigned long から新たな PyLongObject オブジェクトを生成して返します。失敗した際には NULL を返します。

PyObject* PyLong_FromSsize_t(Py_ssize_t v)
Return value: New reference.

C の Py_ssize_t 型から新たな PyLongObject オブジェクトを生成して返します。 失敗のときには NULL を返します。

バージョン 2.6 で追加.

PyObject* PyLong_FromSize_t(size_t v)
Return value: New reference.

C の size_t 型から新たな PyLongObject オブジェクトを生成して返します。 失敗のときには NULL を返します。

バージョン 2.6 で追加.

PyObject* PyLong_FromLongLong(PY_LONG_LONG v)
Return value: New reference.

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

PyObject* PyLong_FromUnsignedLongLong(unsigned PY_LONG_LONG v)
Return value: New reference.

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

PyObject* PyLong_FromDouble(double v)
Return value: New reference.

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

PyObject* PyLong_FromString(char *str, char **pend, int base)
Return value: New reference.

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

PyObject* PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)
Return value: New reference.

Unicode の数字配列を Python の長整数型に変換します。最初のパラメタ u は、 Unicode 文字列の最初の文字を指し、 length には文字数を指定し、 base には変換時の基数を指定します。基数は範囲 [2, 36] になければなりません; 範囲外の基数を指定すると、 ValueError を送出します。

バージョン 1.6 で追加.

バージョン 2.5 で変更: この関数は以前は lengthint * 型を使用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。

PyObject* PyLong_FromVoidPtr(void *p)
Return value: New reference.

ポインタ p から Python 整数値または長整数型を生成します。ポインタの値は PyLong_AsVoidPtr() を適用した結果から取得できます。

バージョン 1.5.2 で追加.

バージョン 2.5 で変更: 整数値が LONG_MAX より大きい場合に、正の長整数を返すようになりました。

long PyLong_AsLong(PyObject *pylong)

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

long PyLong_AsLongAndOverflow(PyObject *pylong, int *overflow)

pylong の値を C の long 型表現で返します。 pylongLONG_MAX より大きかったり LONG_MIN より小さい場合、 *overflow1-1 を設定して -1 を返します。それ以外の場合は *overflow0 を設定します。なにか例外が発生した場合は(TypeError や MemoryErrorなど)、 *overflow0 で戻り値が -1 になります。

バージョン 2.7 で追加.

PY_LONG_LONG PyLong_AsLongLongAndOverflow(PyObject *pylong, int *overflow)

pylong の値を C の long long 型表現で返します。 pylongPY_LLONG_MAX より大きかったり PY_LLONG_MIN より小さい場合、 *overflow1-1 を設定して -1 を返します。それ以外の場合は *overflow0 を設定します。なにか例外が発生した場合は(TypeError や MemoryErrorなど)、 *overflow0 で戻り値が -1 になります。

バージョン 2.7 で追加.

Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)

pylong の指す長整数値を、 C の Py_ssize_t 型表現で返します。 pylongPY_SSIZE_T_MAX よりも大きい場合、 OverflowError を送出し、 -1 を返します。

バージョン 2.6 で追加.

unsigned long PyLong_AsUnsignedLong(PyObject *pylong)

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

PY_LONG_LONG PyLong_AsLongLong(PyObject *pylong)

pylong の指す長整数値を、 C の long long 型表現で返します。 pylonglong long で表せない場合、 OverflowError を送出し -1 を返します。

バージョン 2.2 で追加.

unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong)

pylong の指す長整数値を、 C の unsigned long long 型表現で返します。 pylongunsigned long long で表せない場合、 OverflowError を発生させて、 (unsigned long long)-1 を返します。

バージョン 2.2 で追加.

バージョン 2.7 で変更: pylong を指定した際に TypeError ではなく、 OverflowError を送出するようになりました。

unsigned long PyLong_AsUnsignedLongMask(PyObject *io)

Python 長整数値を、オーバフローチェックを行わずに C の unsigned long 型表現で返します。

エラーが起きたときに (unsigned long)-1 を返します。 見分けを付けるためには PyErr_Occurred() を使ってください。

バージョン 2.3 で追加.

unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(PyObject *io)

Python 長整数値を、オーバフローチェックを行わずに C の unsigned long long 型表現で返します。

Returns (unsigned PY_LONG_LONG)-1 on error. Use PyErr_Occurred() to disambiguate.

バージョン 2.3 で追加.

double PyLong_AsDouble(PyObject *pylong)

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

void* PyLong_AsVoidPtr(PyObject *pylong)

Python の整数型か長整数型を指す pylong を、 C の void ポインタに変換します。 pylong を変換できなければ、 OverflowError を送出します。この関数は PyLong_FromVoidPtr() で値を生成するときに使うような void ポインタ型を生成できるだけです。

バージョン 1.5.2 で追加.

バージョン 2.5 で変更: 値が 0..LONG_MAX の範囲外だった場合でも、符号付き整数と符号無し整数の両方とも利用可能になりました。