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
574 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!

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