Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengiraan ketepatan tinggi dan fungsi berkaitan dalam PHP

Pengiraan ketepatan tinggi dan fungsi berkaitan dalam PHP

王林
王林asal
2023-06-23 08:06:095236semak imbas

PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular. Ia bukan sahaja mudah dipelajari dan digunakan, tetapi juga menyediakan pelbagai fungsi dan sambungan terbina dalam, yang sangat sesuai untuk memproses pelbagai jenis data. Salah satu daripadanya ialah pengiraan ketepatan tinggi Artikel ini akan memperkenalkan pengiraan ketepatan tinggi dan fungsi berkaitannya dalam PHP.

1. Apakah pengiraan ketepatan tinggi

Dalam komputer, data biasanya disimpan dalam bentuk binari, jadi saiz nombor dihadkan oleh jenis data jenis integer hanya boleh mewakili maksimum $2 ^{31}-1$, apabila melebihi julat ini, limpahan akan berlaku. Walau bagaimanapun, sesetengah aplikasi perlu memproses nilai yang sangat besar, seperti algoritma penyulitan, kriptografi, pengkomputeran saintifik dan bidang lain, dalam hal ini pengiraan ketepatan tinggi diperlukan.

Pengiraan ketepatan tinggi ialah kaedah pengiraan berangka yang dilaksanakan melalui perisian Ia boleh mengendalikan lebih banyak nombor daripada bilangan digit yang disokong oleh perkakasan, dan mempunyai kelebihan ketepatan tinggi, kebolehpercayaan tinggi dan ketepatan yang tinggi. Rentetan biasanya digunakan untuk menyimpan nombor dan melakukan operasi matematik seperti penambahan, penolakan, pendaraban dan pembahagian untuk mencapai pengiraan ketepatan tinggi.

2. Pengiraan ketepatan tinggi dalam PHP

PHP menyediakan sambungan matematik BC terbina dalam, yang boleh mencapai pengiraan ketepatan tinggi dan menyokong pengiraan berangka dalam sebarang panjang. Sambungan matematik BC perlu dimuatkan pada masa jalan dan boleh dimuatkan dengan menetapkan extension=bc.so dalam fail php.ini. Berikut ialah beberapa fungsi biasa sambungan matematik BC:

  1. fungsi bcadd(): melaksanakan operasi tambah ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi. Fungsi
  2. bcsub(): melaksanakan operasi penolakan ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi.
  3. fungsi bcmul(): melaksanakan operasi pendaraban ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi. Fungsi
  4. bcdiv(): melaksanakan operasi pembahagian ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi.
  5. fungsi bcpow(): melaksanakan operasi kuasa ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi.
  6. fungsi bcsqrt(): melaksanakan operasi punca kuasa dua berketepatan tinggi dan mengembalikan hasil operasi berketepatan lebih tinggi.
  7. fungsi bcomp(): membandingkan saiz dua nombor ketepatan tinggi dan mengembalikan 0, 1 atau -1.
  8. fungsi bcmod(): melaksanakan operasi modulo berketepatan tinggi dan mengembalikan hasil operasi berketepatan lebih tinggi.

Selain sambungan matematik BC, PHP juga menyediakan sambungan GMP, yang boleh mencapai pengiraan berangka ketepatan lebih tinggi dan pengiraan sokongan lebih daripada 500,000 digit. Sambungan GMP juga perlu dimuatkan pada masa jalan dan boleh dimuatkan dengan menetapkan extension=gmp.so dalam fail php.ini. Berikut ialah beberapa fungsi umum sambungan GMP:

  1. fungsi gmp_add(): melaksanakan operasi penambahan berketepatan tinggi dan mengembalikan hasil operasi berketepatan lebih tinggi.
  2. fungsi gmp_sub(): melaksanakan operasi penolakan ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi.
  3. fungsi gmp_mul(): melaksanakan operasi pendaraban ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi.
  4. fungsi gmp_div(): melaksanakan operasi pembahagian ketepatan tinggi dan mengembalikan hasil operasi ketepatan lebih tinggi.
  5. fungsi gmp_pow(): melaksanakan operasi kuasa berketepatan tinggi dan mengembalikan hasil operasi berketepatan lebih tinggi.
  6. fungsi gmp_mod(): melaksanakan operasi modulo berketepatan tinggi dan mengembalikan hasil operasi berketepatan lebih tinggi.

3. Contoh Aplikasi

Berikut ialah contoh aplikasi praktikal pengiraan ketepatan tinggi, mendarab dua nombor perpuluhan yang lebih besar:

$num1 = "12345678901234567890";
$num2 = "98765432109876543210";
$result = bcmul($num1, $num2);
echo $result; // 1219326311370217954807669063466076789910

di atas Dalam kod , mula-mula tentukan dua nombor yang lebih besar $num1 dan $num2, kemudian gunakan fungsi bcmul() untuk mendarabnya, dan akhirnya mengeluarkan hasil operasi.

4. Ringkasan

Pengiraan ketepatan tinggi ialah kaedah pengiraan berangka yang sangat praktikal yang boleh memenuhi keperluan banyak aplikasi. PHP menyediakan sambungan matematik BC terbina dalam dan sambungan GMP, yang boleh mencapai pengiraan ketepatan tinggi. Anda perlu memberi perhatian kepada format dan ketepatan data apabila menggunakannya untuk mengelakkan ralat.

Atas ialah kandungan terperinci Pengiraan ketepatan tinggi dan fungsi berkaitan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn