0

我必须对一些三进制(以 3 为底)数进行算术运算。我知道我可以使用 base_convert 从三元字符串(“2001022210”)获取整数。是否有现有的函数来做相反的事情?

我想要“some_function”这样:

$someInteger = base_convert("2001022210", 10, 3);
some_function($someInteger);

回答“2001022210”。我很乐意提供额外的论据...

some_function($someInteger, 3);
some_function($someInteger, 3, 10);

我知道我可以自己编写代码,但我希望它已经存在。

4

3 回答 3

4

$someInteger is now in base 3... so just do $base10Int = base_convert($someInteger, 3, 10); to get it back.

于 2013-09-06T19:53:13.037 回答
1

汤姆。当您使用 php 函数时,请访问http://php.net/以查看它们的实际作用。阅读和理解语言 API 是编写好代码的一般关键。

string base_convert ( string $number , int $frombase , int $tobase )

返回一个字符串,其中包含以 base tobase 表示的数字。给出数字的基数在 frombase 中指定。frombase 和 tobase 都必须在 2 到 36 之间,包括 2 到 36。基数大于 10 的数字将用字母 az 表示,a 表示 10,b 表示 11,z 表示 35。

现在让$number成为您要转换的数字:

  • 如果要将其从三进制转换为十进制,请使用base_convert($number, 3, 10);
  • 如果要将其从十进制转换为三进制,请使用base_convert($number, 10, 3);
于 2013-09-06T20:00:51.387 回答
0

Yes, this can be done with base_convert():

As the PHP Manual says:

base_convert — Convert a number between arbitrary bases

So, the following would work:

base_convert($someinteger, 3, 10);

As a function:

function some_func($someinteger) {
    return base_convert($someinteger, 3, 10);
}
于 2013-09-06T19:53:33.123 回答