10
คุณคำนวณ log ฐาน 2 ใน Java สำหรับจำนวนเต็มได้อย่างไร
ฉันใช้ฟังก์ชันต่อไปนี้เพื่อคำนวณ log ฐาน 2 สำหรับจำนวนเต็ม: public static int log2(int n){ if(n <= 0) throw new IllegalArgumentException(); return 31 - Integer.numberOfLeadingZeros(n); } มันมีประสิทธิภาพที่ดีที่สุด? มีคนรู้ว่าฟังก์ชั่น J2SE API พร้อมสำหรับวัตถุประสงค์นั้นหรือไม่? UPD1 น่าแปลกใจสำหรับฉันเลขคณิตจุดลอยตัวดูเหมือนจะเร็วกว่าเลขคณิตจำนวนเต็ม UPD2 เนื่องจากความคิดเห็นฉันจะดำเนินการตรวจสอบอย่างละเอียดมากขึ้น UPD3 ฟังก์ชันเลขจำนวนเต็มของฉันเร็วกว่า Math.log (n) / Math.log (2) 10 เท่า