Chuyển đổi nhị phân sang thập phân là quá trình chuyển đổi một số nhị phân (số cơ sở 2 chỉ sử dụng 0 và 1) thành số thập phân tương đương (dạng cơ sở 10).
Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi số nhị phân sang dạng thập phân trong PHP bằng các phương pháp khác nhau.
Cách chuyển đổi nhị phân sang thập phân hoạt động
Để chuyển một số nhị phân thành số thập phân, hãy nhân mỗi chữ số nhị phân với 2 lũy thừa vị trí của nó (bắt đầu từ 0 ở bên phải), sau đó tính tổng tất cả các kết quả ?
Chuyển đổi nhị phân sang thập phân:1011 Vị trí:3 2 1 0 Nhị phân:1 0 1 1 Tính toán:1×2³ 0×2² 1×2¹ 1×2? =8 =0 =2 =1 Kết quả:8 + 0 + 2 + 1 =11Phương pháp 1:Sử dụng hàm bindec() tích hợp
PHP cung cấp bindec() hàm chuyển trực tiếp số nhị phân sang số thập phân ?
<?php $binary = "101"; // Convert binary to decimal using bindec() $decimal = bindec($binary); echo "Binary $binary = Decimal $decimal"; ?>
Binary 101 = Decimal 5
Phương pháp 2:Chuyển đổi thủ công bằng vòng lặp
Cách tiếp cận này tính toán thủ công giá trị thập phân bằng cách lặp qua từng chữ số nhị phân ?
<?php
$binary = "1011";
$decimal = 0;
$length = strlen($binary);
// Loop through each digit from right to left
for ($i = 0; $i < $length; $i++) {
$digit = $binary[$length - $i - 1];
$decimal += $digit * pow(2, $i);
}
echo "Binary $binary = Decimal $decimal";
?>
Binary 1011 = Decimal 11
Phương pháp 3:Sử dụng phím Shift trái theo bit
Phương pháp này sử dụng các phép toán bitwise để chuyển đổi hiệu quả ?
<?php
function binaryToDecimalBitwise($binary) {
$decimal = 0;
for ($i = 0; $i < strlen($binary); $i++) {
$decimal = ($decimal << 1) + $binary[$i];
}
return $decimal;
}
$binary = "1111";
$decimal = binaryToDecimalBitwise($binary);
echo "Binary $binary = Decimal $decimal";
?>
Binary 1111 = Decimal 15
So sánh các phương pháp
Kết luận
Sử dụng bindec() để chuyển đổi nhị phân sang thập phân đơn giản trong PHP. Vì mục đích giáo dục hoặc logic tùy chỉnh, hãy triển khai chuyển đổi thủ công bằng cách sử dụng vòng lặp hoặc thao tác theo bit.