Apakah yang lebih cekap? Menggunakan pow kepada kuasa dua atau hanya darabkannya dengan dirinya sendiri?
Dalam C, menggunakan x * x untuk kuasa dua secara amnya lebih cekap daripada menggunakan pow(x, 2) kerana pow melibatkan panggilan fungsi dengan overhed tambahan .
Walau bagaimanapun, dalam C , kedua-dua pendekatan boleh menjadi cekap disebabkan pengoptimuman pengkompil:
pow(x, 3) lwn. x x x
Dalam C , pow(x, 3) dan x * x * x biasanya setara dari segi kecekapan. Fungsi std::pow C mengambil bentuk yang lebih generik (pow(double, double)), yang mengendalikan eksponen sebagai nombor titik terapung.
Pertimbangan Khusus:
Berikut ialah penanda aras yang dikemas kini untuk GCC dan Clang, menguji kecekapan untuk eksponen yang berbeza:
Exponent | GCC (O3) | Clang (O3) |
---|---|---|
2 | x * x slightly faster | Similar |
3 | x * x * x faster | Similar |
4 and above | x * x * x * ... faster | Similar |
Nota Tambahan:
Atas ialah kandungan terperinci Adakah pow(x, 2) atau x * x Lebih Cekap untuk Petak kuasa dua dalam C dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!