ไวยากรณ์
สองเท่า NS ( สองเท่า ฐาน, สองเท่า ประสบการณ์);
NS NS() ฟังก์ชั่นถูกกำหนดใน คณิตศาสตร์.h ไฟล์ส่วนหัว
ข้อโต้แย้ง
ฟังก์ชันนี้รับสองอาร์กิวเมนต์ ฐาน และ ประสบการณ์, เพื่อคำนวณค่าของ ฐาน ขึ้นสู่อำนาจของ exp . ที่นี่ ฐาน และ exp ทั้งสองเป็นสองเท่า
ส่งกลับค่า
เมื่อประสบความสำเร็จ NS() ฟังก์ชันส่งคืนค่าของ ฐาน ขึ้นสู่อำนาจของ exp .
ถ้าค่าของ exp คือ 0, the NS() ฟังก์ชั่นส่งคืน 1
ถ้า ฐาน เป็นลบและ exp ไม่เป็นปริพันธ์ NS() ฟังก์ชันส่งคืน น่าน (ไม่ใช่-A-Number).
ตัวอย่าง
//Example1.c#รวม
#รวม
intหลัก()
{
intผลลัพธ์;
ผลลัพธ์= (int) NS (3,5);
printf ('NSpow(3,5) => %d',ผลลัพธ์);
printf ('NSแป้ง(3,-5) => %lf', NS (3, -5));
printf ('NSแป้ง(-3,-5) => %lf', NS (-3, -5));
printf ('NSpow(3,5.1) => %lf', NS (3,5.1));
printf ('NSpow(-3,5.1) => %lf', NS (-3,5.1));
printf ('NSpow(-3,-5.1) => %lfNS', NS (-3, -5.1));
กลับ 0;
}
ใน Example1.c เราได้เห็นผลลัพธ์ของ NS() การทำงาน. ที่นี่เราใช้ -lm พารามิเตอร์บรรทัดคำสั่งเพื่อลิงก์ในไลบรารีคณิตศาสตร์ จากบรรทัดที่ 10 ถึง 13 เราได้ผลลัพธ์ตามที่คาดไว้ สำหรับบรรทัดที่ 14 และ 15 เราได้ -น่าน (ไม่ใช่ตัวเลข) เพราะอาร์กิวเมนต์ที่สองไม่ใช่อินทิกรัล
เลขชี้กำลังโดยใช้ Bit Shifting
หากเราต้องการคำนวณเลขชี้กำลังเป็น 2 เราก็ทำได้โดยใช้การขยับบิต
เลื่อนไปทางซ้าย m เท่ากับเทอมแรกและ 2 ยกกำลัง m
NS<< m = n*pow(2,m)
การเลื่อนไปทางขวาโดย m เท่ากับการหารของเทอมแรกและ 2 ยกกำลัง m
น>>ม = n/pow(2,m)
ใช้ได้เฉพาะเมื่อ m เป็นบวก
//Example2.c#รวม
intหลัก()
{
printf ('NS1<%d',1<<3);
printf ('NS5<%d',5<<3);
printf ('NS-5<%d', -53 => %NS', 40 >> 3);
printf('NS40>>3 => %NS', 40 >> 3);
printf('NS-40>>3 => %ง ', -40 >> 3);
กลับ 0;
}
ใน Example2.c เราได้เห็นแล้วว่าตัวดำเนินการเปลี่ยนบิตสามารถใช้เป็นเลขชี้กำลังเป็น 2 ได้อย่างไร ซึ่งมีประโยชน์มากในการลดความซับซ้อนของโค้ด
เลขชี้กำลังโดยใช้ฟังก์ชันที่ผู้ใช้กำหนด
เราสามารถเขียนฟังก์ชันที่ผู้ใช้กำหนดเองเพื่อคำนวณเลขชี้กำลัง ใน Example3.c เราจะเขียนฟังก์ชันที่ผู้ใช้กำหนด เลขชี้กำลัง (), ซึ่งรับสองอาร์กิวเมนต์ตามและ exp ของชนิดจำนวนเต็มมดลอย
//Example3.c#รวม
ลอยเลขชี้กำลัง(ลอยฐาน, int exp )
{
ลอยผลลัพธ์=1.0;
ลอยผม;
ถ้า( exp < 0)
{
exp = -1 * exp ;
สำหรับ(ผม=1;ผม<= exp ;ผม++)
ผลลัพธ์=ผลลัพธ์*ฐาน;
ผลลัพธ์= 1.0/ผลลัพธ์;
}
อื่น
{
สำหรับ(ผม=1;ผม%NS',เลขชี้กำลัง(3,0));
printf(' exponent(3, -5) => %NS',เลขชี้กำลัง(3,-5));
printf(' exponent(-3, -5) => %NS',เลขชี้กำลัง(-3,-5));
กลับ 0;
}
Example3.c เราได้เห็นผลลัพธ์ของฟังก์ชันที่ผู้ใช้กำหนดแล้ว เลขชี้กำลัง () . ฟังก์ชันนี้ทำงานเมื่อเลขชี้กำลังเป็นอินทิกรัล สำหรับเลขชี้กำลังจริง เราต้องใช้ NS() การทำงาน.
บทสรุป
ในบทความนี้เราได้เห็นการใช้ NS() ฟังก์ชันและ บิตขยับ ตัวดำเนินการวิธีคำนวณเลขชี้กำลังในภาษา C นอกจากนี้เรายังได้เรียนรู้วิธีเขียนฟังก์ชันของเราเองเพื่อคำนวณเลขชี้กำลัง ตอนนี้เราสามารถใช้เทคนิคเหล่านี้ในโปรแกรม C ของเราได้อย่างไม่ต้องสงสัย