คำตอบสั้นๆ
ไบนารี่คือฐาน 2: ทุกหลัก (บิต) คือ 0 หรือ 1 และแต่ละตำแหน่งแทนค่ากำลังสอง 1,010 ในไบนารี่เท่ากับ 1×8 + 0×4 + 1×2 + 0×1 = 10 ในฐานสิบ เครื่องคิดเลขนี้รองรับเลขคณิตไบนารี ตรรกะระดับบิต (AND, OR, XOR, NOT) การเปลี่ยนบิต และการแปลงเป็นทศนิยม ฐานสิบหก และฐานแปดในทันที
ประเด็นสำคัญ
- ค่าจะถูกจำกัดไว้ที่ช่วงจำนวนเต็มแบบ 32 บิต (-2,147,483,648 ถึง 2,147,483,647) — สตริงไบนารี่ที่อยู่นอกช่วงนั้นจะถูกปฏิเสธ แทนที่จะถูกตัดทอนอย่างเงียบๆ
- Bitwise AND/OR/XOR เปรียบเทียบตัวเลขทีละบิตและไม่เหมือนกับการบวกหรือการคูณทางคณิตศาสตร์ - 1010 และ 0110 เท่ากับ 0010 ไม่ใช่ 16
- การเลื่อนไปทางซ้ายด้วย n เทียบเท่ากับการคูณด้วย 2ⁿ; การเลื่อนไปทางขวาด้วย n เทียบเท่ากับการหารจำนวนเต็ม (พื้น) ด้วย 2ⁿ
- หลักเลขฐานสิบหกแต่ละหลักจับคู่กับไบนารี่บิต 4 บิตพอดี ซึ่งจะทำให้การแปลงเลขฐานสิบหกเป็นไบนารี่เป็นกลไกเมื่อคุณรู้รูปแบบสี่บิตทั้ง 16 รูปแบบ
ค่าสถานที่ไบนารีทำงานอย่างไร
เช่นเดียวกับค่าตำแหน่งทศนิยมใช้กำลังของสิบ ค่าตำแหน่งไบนารี่ใช้กำลังของสอง การอ่านหมายเลข 8 บิต 10110101 จากขวาไปซ้าย:
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
รวมค่าตำแหน่งที่มี 1: 128 + 32 + 16 + 4 + 1 = 181 ดังนั้นไบนารี 10110101 เท่ากับทศนิยม 181
การดำเนินการระดับบิตเทียบกับการดำเนินการทางคณิตศาสตร์
| การดำเนินการ | มันทำอะไร | ตัวอย่าง |
|---|---|---|
| AND (&) | 1 เท่านั้น โดยที่ทั้งสองบิตเป็น 1 | 1010 & 0110 = 0010 |
| OR (|) | 1 โดยที่บิตใดบิตหนึ่งเป็น 1 | 1010 | 0110 = 1110 |
| XOR (^) | 1 ซึ่งบิตต่างกัน | 1010 ^ 0110 = 1100 |
| กะซ้าย (<<) | เลื่อนบิตไปทางซ้าย เติม 0 (×2ⁿ) | 0011 << 2 = 1100 |
| เลื่อนไปทางขวา (>>) | เลื่อนบิตไปทางขวา (÷2ⁿ, ปัดเศษลง) | 1100 >> 2 = 0011 |
การดำเนินการระดับบิตจะเปรียบเทียบหรือเลื่อนแต่ละบิต — การดำเนินการดังกล่าวจะไม่ดำเนินการระหว่างตำแหน่งเหมือนที่การบวกเกิดขึ้น ซึ่งเป็นเหตุผลว่าทำไม 1010 และ 0110 ถึง 0010 แทนที่จะเป็นสิ่งที่คล้ายกับผลรวม
ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยง
- ปฏิบัติต่อระดับบิต AND/OR ราวกับว่าเป็นการบวกหรือการคูณทางคณิตศาสตร์ — พวกมันทำงานทีละนิดโดยไม่มีการแบก
- ลืมขีดจำกัดของช่วงที่ลงนามแบบ 32 บิต — สตริงไบนารี่ที่มากกว่า 31 รายการจะล้นช่วงที่รองรับและส่งกลับข้อผิดพลาด
- การคาดหวังว่าจะไม่เพียงแค่พลิกตัวเลขที่พิมพ์ออกมาในระดับบิต — ในการเป็นตัวแทนส่วนเสริมของเลขสอง การไม่นับจำนวนบวกจะทำให้เกิดค่าลบ ไม่ใช่การกลับหลักง่ายๆ
- สมมติว่าเลื่อนไปทางขวา — มันจะตัด (พื้น) ไปทางลบอนันต์สำหรับจำนวนลบ ดังนั้น 7 >> 1 = 3 ไม่ใช่ 3.5 หรือ 4
เครื่องคิดเลขที่เกี่ยวข้อง
- เครื่องคิดเลขเลขฐานสิบหก — ทำงานโดยตรงในรูปแบบเลขฐานสิบหกด้วยการแปลงและการดำเนินการเดียวกัน
- เครื่องคำนวณเลขชี้กำลัง — ตรวจสอบพลังของทั้งสองที่อยู่ด้านหลังทุกตำแหน่งบิตแล้วเปลี่ยน
- เครื่องคิดเลขจำนวนมาก — ก้าวไปไกลกว่าช่วง 32 บิตด้วยเลขคณิตที่มีความแม่นยำตามอำเภอใจ
- เครื่องคิดเลขวิทยาศาสตร์ — จัดการกับคณิตศาสตร์ทั่วไปนอกเหนือจากการแปลงฐานตัวเลข