長整数型オブジェクト (long integer object)¶
-
PyTypeObject
PyLong_Type
¶ この
PyTypeObject
のインスタンスは Python 長整数型を表現します。これは Python レイヤにおけるlong
や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)¶ - 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 を基数として文字列を解釈します。 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, Py_ssize_t length, int base)¶ - Return value: New reference.
Unicode の数字配列を Python の長整数型に変換します。最初のパラメタ u は、 Unicode 文字列の最初の文字を指し、 length には文字数を指定し、 base には変換時の基数を指定します。基数は範囲 [2, 36] になければなりません; 範囲外の基数を指定すると、
ValueError
を送出します。バージョン 1.6 で追加.
バージョン 2.5 で変更: この関数は以前は length に
int *
型を使用していました。この変更により、 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
型表現で返します。 pylong がLONG_MAX
よりも大きい場合、OverflowError
を送出し、-1
を返します。
-
long
PyLong_AsLongAndOverflow
(PyObject *pylong, int *overflow)¶ pylong の値を C の
long
型表現で返します。 pylong がLONG_MAX
より大きかったりLONG_MIN
より小さい場合、 *overflow に1
か-1
を設定して-1
を返します。それ以外の場合は *overflow に0
を設定します。なにか例外が発生した場合は(TypeError や MemoryErrorなど)、 *overflow は0
で戻り値が-1
になります。バージョン 2.7 で追加.
-
PY_LONG_LONG
PyLong_AsLongLongAndOverflow
(PyObject *pylong, int *overflow)¶ pylong の値を C の
long long
型表現で返します。 pylong がPY_LLONG_MAX
より大きかったりPY_LLONG_MIN
より小さい場合、 *overflow に1
か-1
を設定して-1
を返します。それ以外の場合は *overflow に0
を設定します。なにか例外が発生した場合は(TypeError や MemoryErrorなど)、 *overflow は0
で戻り値が-1
になります。バージョン 2.7 で追加.
-
Py_ssize_t
PyLong_AsSsize_t
(PyObject *pylong)¶ pylong の指す長整数値を、 C の
Py_ssize_t
型表現で返します。 pylong がPY_SSIZE_T_MAX
よりも大きい場合、OverflowError
を送出し、-1
を返します。バージョン 2.6 で追加.
-
unsigned long
PyLong_AsUnsignedLong
(PyObject *pylong)¶ pylong の指す長整数値を、 C の
unsigned long
型表現で返します。 pylong がULONG_MAX
よりも大きい場合、OverflowError
を送出します。
-
PY_LONG_LONG
PyLong_AsLongLong
(PyObject *pylong)¶ pylong の指す長整数値を、 C の
long long
型表現で返します。 pylong がlong long
で表せない場合、OverflowError
を送出し-1
を返します。バージョン 2.2 で追加.
-
unsigned PY_LONG_LONG
PyLong_AsUnsignedLongLong
(PyObject *pylong)¶ pylong の指す長整数値を、 C の
unsigned long long
型表現で返します。 pylong がunsigned 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. UsePyErr_Occurred()
to disambiguate.バージョン 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 で追加.
バージョン 2.5 で変更: 値が 0..LONG_MAX の範囲外だった場合でも、符号付き整数と符号無し整数の両方とも利用可能になりました。