JavaScript มีวิธีในตัว (Built-in) สำหรับแปลง Binary String เป็น Decimal Number อย่างง่าย
วิธีที่ 1: parseInt() กำหนด Radix 2 (แนะนำ)
<!DOCTYPE html>
<html>
<body>
<script>
var binaryStr = "1010";
var decimal = parseInt(binaryStr, 2);
document.write("Binary: " + binaryStr + " = Decimal: " + decimal); // 10
</script>
</body>
</html>
วิธีที่ 2: Number() กับ Prefix 0b (ES6+)
var decimal = Number("0b1010"); // 10
// หรือ Literal โดยตรง (ไม่ใช่ String)
var literal = 0b1010; // 10
ตารางตัวอย่าง
| Binary | Decimal | Code |
|---|---|---|
| 0 | 0 | parseInt("0", 2) |
| 1 | 1 | parseInt("1", 2) |
| 10 | 2 | parseInt("10", 2) |
| 1010 | 10 | parseInt("1010", 2) |
| 11111111 | 255 | parseInt("11111111", 2) |
ข้อควรระวัง
parseIntข้าม Whitespace นำหน้า และหยุดอ่านตอนเจอตัวอักษรที่ไม่ใช่ 0/1- ส่ง Radix 2 เสมอ เพื่อป้องกันการตีความผิด (เช่น Leading Zero ถูกมองว่า Octal ในบาง Environment)
- Binary String ยาวเกิน 32-bit อาจสูญเสีย Precision ใช้ BigInt:
BigInt("0b" + binaryStr)