Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Chuyển Đổi Số Nhị Phân Sang Thập Phân Trong PHP — Hướng Dẫn Bước Đi Bước Dễ Dàng

Chuyển nhị phân sang thập phân là quá trình chuyển số nhị phân (cơ số 2 chỉ dùng 0 và 1) thành số thập phân tương đương (cơ số 10).

Bài này học chuyển số nhị phân sang thập phân trong PHP bằng các cách khác nhau.

Cách Chuyển Nhị Phân Sang Thập Phân Hoạt Động

Để chuyển nhị phân sang thập phân, nhân mỗi chữ số nhị phân với 2 lũy thừa vị trí (bắt đầu 0 từ phải), rồi cộng tất cả kết quả.

Chuyển Nhị Phân Sang Thập Phân: 1011
Vị trí: 3 2 1 0
Nhị phân: 1 0 1 1
Tính: 1×2³ 0×2² 1×2¹ 1×2⁰ = 8 + 0 + 2 + 1 = 11
Kết quả: 11

Phương Pháp 1: Dùng Hàm Built-in bindec()

PHP cung cấp bindec() chuyển nhị phân trực tiếp sang thập phân.

<?php
$binary = "101";
// Chuyển nhị phân sang thập phân dùng bindec()
$decimal = bindec($binary);
echo "Binary $binary = Decimal $decimal";
?>
Binary 101 = Decimal 5

Phương Pháp 2: Chuyển Thủ Công Dùng Vòng Lặp

Cách này thủ công tính giá trị thập phân bằng cách duyệt từng chữ số nhị phân.

<?php
$binary = "1011";
$decimal = 0;
$length = strlen($binary);
// Duyệt từng chữ số từ phải sang trái
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: Dùng Dịch Bitwise Trái

Phương pháp này dùng thao tác bitwise để chuyển 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

Phương phápTime ComplexitySpace ComplexityPhù hợp cho
bindec()O(1)O(1)Chuyển đổi đơn giản
Manual LoopO(n)O(1)Học thuật toán
Bitwise ShiftO(n)O(1)Hiệu năng quan trọng

Kết Luận

Dùng bindec() cho chuyển nhị phân sang thập phân đơn giản trong PHP. Mục đích giáo dục hoặc logic tùy chỉnh, triển khai chuyển thủ công dùng vòng lặp hoặc bitwise.

Chuyển Đổi Số Nhị Phân Sang Thập Phân Trong PHP — Hướng Dẫn Bước Đi Bước Dễ Dàng