การแปลงเลขฐานสองเป็นทศนิยมเป็นกระบวนการแปลงเลขฐานสอง (เลขฐาน 2 โดยใช้เพียง 0 และ 1) ให้เป็นเลขทศนิยมที่เทียบเท่ากัน (รูปแบบฐาน 10)
ในบทความนี้ เราจะได้เรียนรู้วิธีแปลงเลขฐานสองให้อยู่ในรูปแบบทศนิยมใน PHP โดยใช้วิธีต่างๆ
วิธีการทำงานของการแปลงไบนารีเป็นทศนิยม
หากต้องการแปลงเลขฐานสองเป็นทศนิยม ให้คูณเลขฐานสองแต่ละหลักด้วย 2 ยกกำลังของตำแหน่ง (เริ่มจาก 0 ทางด้านขวา) แล้วรวมผลลัพธ์ทั้งหมด ?
การแปลงไบนารีเป็นทศนิยม:1011 ตำแหน่ง:3 2 1 0 ไบนารี:1 0 1 1 การคำนวณ:1×2³ 0×2² 1×2¹ 1×2? =8 =0 =2 =1 ผลลัพธ์:8 + 0 + 2 + 1 =11วิธีที่ 1:การใช้ฟังก์ชัน bindec() ในตัว
PHP ให้ bindec() ฟังก์ชั่นแปลงเลขฐานสองเป็นทศนิยมโดยตรง ?
<?php $binary = "101"; // Convert binary to decimal using bindec() $decimal = bindec($binary); echo "Binary $binary = Decimal $decimal"; ?>
Binary 101 = Decimal 5
วิธีที่ 2:การแปลงด้วยตนเองโดยใช้ลูป
วิธีการนี้จะคำนวณค่าทศนิยมด้วยตนเองโดยการวนซ้ำเลขฐานสองแต่ละหลัก ?
<?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
วิธีที่ 3:การใช้ Bitwise Left Shift
วิธีการนี้ใช้การดำเนินการระดับบิตเพื่อการแปลงที่มีประสิทธิภาพ ?
<?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
การเปรียบเทียบวิธีการ
บทสรุป
ใช้ bindec() สำหรับการแปลงไบนารีเป็นทศนิยมอย่างง่ายใน PHP เพื่อวัตถุประสงค์ทางการศึกษาหรือตรรกะที่กำหนดเอง ให้ใช้การแปลงด้วยตนเองโดยใช้ลูปหรือการดำเนินการระดับบิต