Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengira Logaritma Asas 2 dalam C/C tanpa Fungsi Terbina dalam?

Bagaimana untuk Mengira Logaritma Asas 2 dalam C/C tanpa Fungsi Terbina dalam?

Barbara Streisand
Lepaskan: 2024-10-27 08:13:03
asal
521 orang telah melayarinya

How to Calculate Logarithm Base 2 in C/C   without a Built-in Function?

Cara Mengira Logaritma Asas 2 dalam C/C Menggunakan Penukaran Matematik

Dalam C/C , fungsi logaritma terbina dalam adalah log (), yang mengira logaritma asli (asas e), dan log10(), yang mengira logaritma asas 10. Walau bagaimanapun, kadangkala anda mungkin perlu mengira logaritma asas 2 dan mereka tidak menawarkan fungsi ini secara langsung.

Untuk mengira logaritma asas 2 menggunakan matematik mudah, anda boleh menukarnya kepada asas lain dan kemudian menggunakan fungsi log sedia ada. Persamaan untuk penukaran ini ialah:

log<sub>2</sub> (x) = log<sub>y</sub> (x) / log<sub>y</sub> (2)
Salin selepas log masuk

di mana y boleh menjadi sebarang asas. Biasanya, y adalah sama ada 10 atau e, bergantung pada fungsi log yang tersedia dalam bahasa pengaturcaraan anda.

Dalam C/C , anda boleh menggunakan fungsi log() untuk mengira asas logaritma e dan log10() kepada hitung asas logaritma 10. Jadi, untuk mengira asas logaritma 2, anda boleh menggunakan kod berikut:

<code class="c">#include <iostream>
#include <cmath>

double log2(double x) {
  return log10(x) / log10(2);
}

int main() {
  double number;
  std::cout << "Enter a number: ";
  std::cin >> number;

  std::cout << "log2(" << number << ") = " << log2(number) << std::endl;

  return 0;
}</code>
Salin selepas log masuk

Kod ini mengambil nombor input, mengira asas log 10 dan membahagikannya dengan asas log 2. Hasilnya ialah logaritma asas 2 nombor input.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Logaritma Asas 2 dalam C/C tanpa Fungsi Terbina dalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan