int(x[,base])是如何工作的?

2022-02-25 00:00:00 python python-3.x output int number-systems

问题描述

以下代码的输出为:

int("12", 5) 
O/P: 7

int("0", 5)
O/P: 0

int("10", 2)
O/P: 2

我无法理解这一点。Python文档中写道:"[,base]"部分是可选的,即它可能带有一个或两个参数。

第一个参数必须是引号中包含int值的字符串。


解决方案

int(string, base)接受任意基。您可能熟悉二进制和十六进制,也可能熟悉八进制;这些只是用不同的基数表示整数的方法:

  • 二进制表示以2为基数的数字(0和1)
  • 八进制表示以8为基数的数字(0、1、2、3、4、5、6和7)
  • 小数是日常(西方)生活中用来谈论整数的,它是以10为基数(0到9)。
  • 十六进制为基数16(0到9,然后是A、B、C、D、E、F)。

每个基数确定符号中的每个"位置"可以取多少值。我们在十进制中数到9,然后添加一个位置来计算‘十’,因此10表示1乘以10,0乘以1,因此10表示1乘以10,0乘以1。计数超过99,然后添加第三位数,依此类推。在二进制中只有两位,所以在1之后计数到10,即1乘以2,0乘以1,在11之后计数到100

base参数仅为整数基数,不限于2、8、10或16。基数5表示数字用0到4表示。小数点10在基数5中为20,例如(2乘以5)。

int(string, 5)然后将该字符串解释为基数为5的数字,并将生成一个Python整数来反映其值:

>>> int('13', 5)  # one time 5, 3 times 1  == 8
8
>>> int('123', 5)  # one time 5**2 (25), 2 times 5, 3 times 1  == 38
38

如果您必须命名基数为5的数字,则可能会将其命名为Pental。

相关文章