to_i参数库实际上做了什么?

时间:2014-01-27 01:27:53

标签: ruby

to_i String#方法实际上有什么基本参数?

一些例子:

  • "2".to_i(2) == 0

  • "2".to_i(36) == 2

  • "2".to_i(4) == 2

  • "ff".to_i(36) == 555

  • "ff".to_i(16) == 255

On Binary:

  • "1000".to_i(2) == 8

  • "1000".to_i(16) == 4096

文档说:

  

to_i(base = 10)→整数

     

返回将str中的前导字符解释为的结果   整数基数(2到36之间)。过去的外来人物   有效数字的结尾将被忽略。如果没有有效号码   str的开始,返回0。此方法永远不会引发异常   当base有效时。

但是,我仍然不清楚这个解释,有人可以解释一下。感谢。

1 个答案:

答案 0 :(得分:11)

此参数指定接收方表示的数字系统。在计算机领域,您会遇到三个常见数字系统。他们是:

  • 十六进制(16位)
  • Octal(base 8)
  • Binary(base 2)

您可以将这些视为在开始新“地点”之前循环的“字符”数量。例如,一旦你从0变为9,你就从0开始。

当您要求对象将自身转换为数字时,它必须知道它当前代表什么。一旦知道这一点,通过指定,它可以进行数学转换。知道这一点很重要的一个例子是字符串“10”。

  • 十进制“10”= 10(十进制)
  • 二进制“10”= 2(十进制)
  • 十六进制“10”= 16(十进制)
  • 八进制“10”= 8(十进制)