2016-07-23 7 views
0

2進数はどのように素早くベース10に変換されますか? bin()は文字列を返します。それらを整数に変換して、それらの数値をどのように計算しますか?int()はどのようにPythonで実装されていますか?

+3

'int'それは文字列を変換するベース10の整数を変換しないであるように、正確に整数リテラルとして 文字列を解釈するために、浮動小数点数などの数値オブジェクトを整数の内部表現に変換します(これは常に2の補数であると思います)。 – alexis

+2

[ソース、Luke!](https://svn.python.org/projects/python/trunk/Objects/intobject.c)を使用してください。 'PyInt_FromString'はあなたが望むものですか? –

+0

基本的に、私が明らかに理解している、RTFS以外のいくつかのスプライニングはオプションです。このような場合に、CとPythonがどのように相互作用するかは、私には完全には分かりません。 – user1603472

答えて

0

あなたは

int('1000', 2) 
output: 
8 

それを変換するためにint型に加えて追加のパラメータを使用することができますint型クラス:

class int(x, base=10) 

戻り数や文字列xから構築された整数オブジェクト、または リターン0の場合引数は与えられません。 xが数値の場合は、 平方整数、長整数、または浮動小数点数になります。 xが 浮動小数点の場合、変換はゼロに向かって切り捨てられます。引数 が整数の範囲外の場合、この関数は長いオブジェクト を返します。

xが数値でないか、または基数が指定されている場合、xは文字列または の基数で整数リテラルを表すUnicodeオブジェクトでなければなりません。 オプションで、リテラルの前に+または - (間には空白がない)を空白で囲むことができます( )。ベースnのリテラルは、0〜n-1の数字で、 で構成され、a〜z(またはA〜Z)の値は10〜35です。 デフォルトのベースは10です。コード中の整数リテラルと同様に、Base-2、-8、 および-16リテラルに0b/0B、0o/0O/0、または 0x/0Xの接頭辞を付けることもできます。ベースは0手段実際のベース2、8、 10、又は16

関連する問題