16

私はPythonを初めて使用します。これをPythonシェルで入力したときは、Python2.7を使用しています。

print 01
print 010
print 0100
print 01000

この結果が得られます

1
8
64
512

それがなぜそれを与えるのか理解しようとしましたが、残念ながら私はポイントを得ることができませんでした。

4

2 に答える 2

22

数値が。で始まる場合、08進数または8進数として解釈されます。次のようにしてください。

print 1
print 10
print 100
print 1000

そして、あなたの問題は解決されます。

8進数の詳細:http://en.wikipedia.org/wiki/Octal

8進数を簡単に理解する方法は次のとおりです。

8進数1は10進数(正規数)1です

8進数2:10進数2

..。

8進数7:10進数7

8進数10:10進数8

8進数11:10進数9

8進数12:10進数10

..。

8進数17:10進数15

8進数20:10進数16

等々。8進数は0から7までの数字を使用します。

これがお役に立てば幸いです。

于 2012-11-17T14:08:31.243 に答える
10

0Pythonは、 asoctalで始まる数値を解釈しますbase 8。2進文字列を使用してベースを計算できます10b^1 === b ここbで、はベースです。

# print the decimal value of the binary number 10
>>> print 0b10
2
# print the decimal value of the octal number 10    
>>> print 010
8
# print the decimal value of the hexadecimal number 10
>>> print 0x10
16

どの基数でも、記号1は常にdecimal値です。1これは、右から左に読むと、数値の基数が。から始まるためです。b^0 === 1b0

# print the decimal value of the binary number 1
>>> print 0b001
1
# print the decimal value of the octal number 1
>>> print 0001
1
# print the decimal value of the hexadecimal number 1
>>> print 0x001
1

ベースが解釈されると(、、00b0x先頭0は重要ではありません。

ベースに必要なシンボルの数はb、最大のシンボルが次の値に等しい場合です。b-1

            Base (b)   Number of Symbols (b)    Symbols (0 : b-1)
Binary      2          2                        0,1
Octal       8          8                        0,1,2,3,4,5,7,6,7
Decimal     10         10                       0,1,2,3,4,5,7,6,7,8,9

数値で表すことができる最大値は次のとおりです。(b^n)-1ここnで、は桁数です。3桁の数値の場合、最大の10進数値は(10^3)-1 = 999、8進数(8^3)-1 = 511 (decimal)で8777を底とし、2進数で2(2^3)-1 = 7 (decimal)111底とします。したがって、記号が少ない(基数が低い)場合、表現できる値は固定数で減少することがわかります。桁の。

于 2012-11-17T14:18:56.787 に答える