Phương thức tĩnh Math.log2() trong JavaScript

Phương thức tĩnh Math.log2() trong JavaScript
Phương thức tĩnh Math.log2() trong JavaScript

Chức năng của Phương thức tĩnh Math.log2() trong JavaScript

Phương thức tĩnh Math.log2() trong JavaScript dùng để tìm số mũ của cơ số 2 trong phép toán lũy thừa khi biết trước kết quả, nếu giá trị truyền vào nhỏ hơn 0 hoặc không phải số thì trả kết quả về NaN (số không hợp lệ).

Công thức:

2^x = ketqua;

x: số mũ cần tìm.

ketqua: là kết quả đã có, bạn dùng nó để truyền vào hàm Math.log2(ketqua).

Cú pháp của Phương thức tĩnh Math.log2() trong JavaScript

let ketqua = Math.log2(giatri);

giatri: Giá trị là kết quả của phép toán lũy thừa của cơ số 2.

ketqua: Là số mũ của cơ số 2 cần tìm.

Code Phương thức tĩnh Math.log2() trong JavaScript

<script>
document.write(Math.log2(8)+"<br>"); // Kết quả: 3
document.write(Math.log2(16)+"<br>"); // Kết quả: 4
document.write(Math.log2(32)+"<br>"); // Kết quả: 5
document.write(Math.log2(64)+"<br>"); // Kết quả: 6
document.write(Math.log2(0)+"<br>"); // Kết quả: -Infinity
document.write(Math.log2(-64)+"<br>"); // Kết quả: NaN
document.write(Math.log2("abc")+"<br>"); // Kết quả: NaN
</script>

Kết quả:

3
4
5
6
-Infinity
NaN
NaN

Chạy Thử

Ứng dụng Math.log2() trong JavaScript thực tế

Math.log2() không chỉ hữu ích khi cần tính logarit cơ số 2. Trong JavaScript, phương thức này còn có thể hỗ trợ xử lý các bài toán liên quan đến chia đôi dữ liệu, số bit, cấp độ và kích thước theo lũy thừa của 2. Khi kết hợp với các phương thức làm tròn, Math.log2() có thể biến một phép tính toán học thành cách xử lý dữ liệu khá trực quan.

Tính số lần chia đôi của một giá trị bằng Math.log2()

Khi một giá trị liên tục được chia cho 2, số lần cần thực hiện để đưa giá trị đó về 1 có thể xác định bằng Math.log2() nếu giá trị ban đầu là một lũy thừa của 2. Chẳng hạn, 32 có thể chia đôi 5 lần để trở về 1, tương ứng với Math.log2(32) bằng 5.

const value = 32;
const times = Math.log2(value);

console.log(times);

Cách tính này phù hợp với những tình huống cần xác định số tầng hoặc số bước của một chuỗi giảm theo tỷ lệ 1/2. Với giá trị không phải lũy thừa của 2, kết quả có thể là số thập phân và cần kết hợp thêm Math.floor() hoặc Math.ceil() tùy mục đích xử lý.

Xác định cấp độ hoặc số bit cần thiết từ một số

Math.log2() cũng có thể được dùng để xác định vị trí của một số trong hệ thống các lũy thừa của 2. Đây là cách tiếp cận hữu ích khi làm việc với dữ liệu có kích thước như 2, 4, 8, 16, 32...

Ví dụ, nếu cần tìm số mũ tương ứng với một giá trị là lũy thừa của 2, có thể tính trực tiếp:

const size = 256;
const level = Math.log2(size);

console.log(level);

Kết quả là 8, bởi 256 bằng 2 mũ 8. Trong các bài toán liên quan đến bit hoặc cấu trúc dữ liệu có kích thước theo lũy thừa của 2, cách tính này giúp xác định cấp độ mà không cần tự xây dựng vòng lặp để thử từng giá trị.

Kết hợp Math.log2() với Math.floor() và Math.ceil()

Với những số không phải lũy thừa của 2, Math.log2() thường trả về kết quả thập phân. Khi đó, việc chọn Math.floor() hay Math.ceil() phụ thuộc vào yêu cầu của bài toán.

Math.floor() phù hợp khi cần lấy cấp độ thấp hơn, còn Math.ceil() thích hợp khi cần tìm mức lũy thừa của 2 nhỏ nhất nhưng vẫn lớn hơn hoặc bằng giá trị đang xét.

const value = 20;

const lowerLevel = Math.floor(Math.log2(value));
const upperLevel = Math.ceil(Math.log2(value));

console.log(lowerLevel);
console.log(upperLevel);

Với 20, kết quả logarit cơ số 2 nằm giữa 4 và 5. Vì vậy, cách làm tròn sẽ cho biết giá trị đang nằm ở cấp nào hoặc cần nâng lên cấp lũy thừa 2 tiếp theo.

Khi nào nên dùng Math.log2() thay vì Math.log()?

Nên chọn Math.log2() khi bài toán trực tiếp liên quan đến cơ số 2, chẳng hạn xác định số mũ của lũy thừa 2, số lần chia đôi hoặc các phép tính liên quan đến bit. Cách viết này cũng giúp ý nghĩa của phép tính rõ ràng hơn so với việc tự chuyển đổi cơ số từ Math.log().

Trong khi đó, Math.log() phù hợp hơn với những phép tính sử dụng logarit tự nhiên. Việc chọn đúng phương thức giúp mã JavaScript ngắn gọn, dễ đọc và hạn chế những phép biến đổi không cần thiết.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Phương thức tĩnh Math.log2() trong JavaScript.

  • ★★★★★ ★★★★★
  • 0 Bình luận
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Phương thức tĩnh Math.log2() trong JavaScript
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !