2010-03-22 32 views
6

Làm cách nào để làm việc với số lượng lớn trong PHP?Làm thế nào để làm việc với số lượng lớn trong PHP?

như

(6*27^0+17*27^1+11*27^2+18*27^3+25*27^4+4*27^5)^65537 
+0

Tôi nghĩ rằng con số này sẽ phù hợp với một int bình thường. Được rồi, đó là trước khi bạn đặt^65537 ở cuối. –

+1

Kiểm tra http://stackoverflow.com/questions/211345/working-with-large-numbers-in-php –

Trả lời

6

Bạn có thể đi cho BCMath để làm việc với những con số lớn.

4

GMP thực sự nhanh hơn BCMath đối với bigintegers nếu bạn đã cài đặt. Nếu bạn chưa cài đặt BCMath hoặc GMP, bạn có thể sử dụng phpseclib's pure-php biginteger implementation.

Việc triển khai đó sử dụng GMP hoặc BCmath nếu chúng có sẵn, theo thứ tự đó và thực hiện nội bộ của chính nó theo cách khác.

1

Với câu hỏi tiêu đề, tôi giả định rằng OP có nghĩa là ^ là một thao tác nguồn ator và không phải của PHP XOR operator, mặc dù các con số thực tế làm cho tôi nghi ngờ.

này có thể đạt được bằng cách sử dụng Brick\Math thư viện (từ chối trách nhiệm: Tôi là tác giả của nó):

use Brick\Math\BigInteger; 

// Not using BigInteger just yet as the numbers are small, although we could 
$value = 6 * 27 ** 0 
     + 17 * 27 ** 1 
     + 11 * 27 ** 2 
     + 18 * 27 ** 3 
     + 25 * 27 ** 4 
     + 4 * 27 ** 5; 

echo BigInteger::of($value)->power(65537); // 529970661615774734826076722083948398443... 

Tôi sparing bạn phần còn lại của 514.566 chữ số :)

+1

Tôi có nghĩa là nhà điều hành điện. – Pentium10

Các vấn đề liên quan