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

时间:2015-11-12 04:29:06

标签: python python-3.x int output number-systems

以下代码的输出是:

0<=i<Max

我无法理解这一点。从Python文档中可以看出:&#34; [,base]&#34; part是可选的,即可能需要一个或两个参数。

第一个参数必须是一个在引号内具有int值的字符串。

5 个答案:

答案 0 :(得分:4)

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

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

每个基数确定符号中每个“位置”可以采用的值。在十进制中,我们最多计数9,然后添加一个位置来计算“十”,所以10表示一次十,零一次。计数超过99,你添加第三个数字等。在二进制中只有两个数字,所以在1之后你算上10,这是一次两次,零次一次,在11之后,您计算到100

base参数只是整数基数,并不限于2,8,10或16.基数5表示数字用0到4表示。十进制数10将是例如,基数为5 20(2次5)。

然后

int(string, 5)将字符串解释为base-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

答案 1 :(得分:1)

int(string, [base])函数将给定的字符串转换为十进制数字,这里base是可选的,您可以输入任何数字,例如:

  • 2 =二进制数
  • 8 =八进制数字
  • 10 =十进制数
  • 16 =十六进制数

但是请注意,您输入的字符串应该是该基数中的一个数字。例如:您不能写int("45",2),因为二进制数没有4和5,而是可以使用int("1011",2)。 就您而言,

  int("12",5) => 1*(5 ^ 1) + 2*(5 ^ 0) = 7
  int("0",5) => 0*(5 ^ 0) = 0
  int("10", 2) => 1*(2 ^ 1) + 0*(2 ^ 0) = 2

答案 2 :(得分:0)

int函数返回字符串,就像它在基数“base”中表示一样。例如,基数2(二进制)中的10是基数10(十进制)中的2。基数5中的12是1 * 5 ^ 1 + 2 * 5 ^ 0 = 7。

答案 3 :(得分:0)

这里base是我们必须将第一个参数关联到的数字系统。就像数字系统是二进制一样,那么&#34; 10&#34;小数表示2。同样,如果&#34; 10&#34;数字系统三元平均值为3,十进制等等。有关更多详细信息,请参阅有关数字系统以及数字系统之间转换的工作原顺便说一句,我们人类很好地理解十进制数系统(0-9),而计算机理解二进制数系统。

答案 4 :(得分:0)

这个事实可以解释如下:
假设我们的函数调用是int("12",5),这意味着(12)在基数5中,我们要求将它转换为十进制数。即,进入10号基数。

所以,简单的规则是

(12)base 5 = 1*(5 ^ 1) + 2*(5 ^ 0)
           = 5 + 2
           = 7

可以从任何其他基础进行类似的转换。