ตัวดำเนินการระดับบิต
AND, OR, XOR, NOT และการเลื่อนบิต
ตัวดำเนินการระดับบิต เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
ลงไปถึงระดับบิต
จำนวนเต็มทุกจำนวนแท้จริงแล้วคือแถวของบิต ตัวดำเนินการระดับบิตช่วยให้คุณทำงานกับค่า 0 และ 1 แต่ละบิตได้โดยตรง โดยไม่มีการปัดเศษหรือคำนวณคั่นกลาง
AND ระดับบิต
ตัวดำเนินการ & จะคงบิตไว้เฉพาะตำแหน่งที่อินพุตทั้งสองมีค่าเป็น 1 เป็นเครื่องมือคลาสสิกสำหรับปิดบิตที่คุณไม่ต้องการ
const masked = value & 0x0F;บิตไวส์ OR
ตัวดำเนินการ | จะตั้งค่าบิตในตำแหน่งที่อินพุตตัวใดตัวหนึ่งมีค่าเป็น 1 ใช้เพื่อเปิดแฟล็กบางรายการโดยไม่รบกวนส่วนที่เหลือ
const withFlag = value | 0b0010;บิตไวส์ XOR
ตัวดำเนินการ ^ จะตั้งค่าบิตเฉพาะตำแหน่งที่อินพุตมีค่าต่างกัน XOR มีประโยชน์สำหรับสลับแฟล็กหรือเปรียบเทียบรูปแบบสองแบบ
const toggled = value ^ 0b0001;บิตไวส์ NOT
ตัวดำเนินการเอกภาค ~ จะกลับค่าบิตทุกบิตพร้อมกัน โดย 1 แต่ละตัวจะกลายเป็น 0 และ 0 แต่ละตัวจะกลายเป็น 1 ซึ่งจะสร้างค่าคอมพลีเมนต์ของค่าเดิม
const inverted = ~flags;การเลื่อนบิตไปทางซ้าย
ตัวดำเนินการ << จะเลื่อนบิตไปทางด้านค่าสูง โดยเติมศูนย์เข้ามา การเลื่อนไปทางซ้ายหนึ่งครั้งจะทำให้ค่าที่ไม่มีเครื่องหมายเพิ่มเป็นสองเท่า
const doubled = x << 1;การเลื่อนบิตไปทางขวา
ตัวดำเนินการ >> จะเลื่อนบิตไปทางด้านค่าต่ำ สำหรับจำนวนเต็มที่ไม่มีเครื่องหมาย การเลื่อนไปทางขวาหนึ่งครั้งจะทำให้ค่าลดลงครึ่งหนึ่ง
const halved = x >> 1;การใช้มาสก์อ่านบิต
ใช้ AND ร่วมกับมาสก์เพื่อทดสอบว่าบิตถูกตั้งค่าไว้หรือไม่ หาก value & mask ไม่ใช่ศูนย์ แฟล็กนั้นจะเปิดอยู่ หากเป็นศูนย์ แฟล็กนั้นจะปิดอยู่
const isSet = (value & mask) != 0;การตั้งค่าและการล้างค่า
ใช้ OR กับมาสก์เพื่อตั้งค่าบิต และใช้ AND กับมาสก์ที่กลับค่าแล้วเพื่อล้างค่าบิตเหล่านั้น ทั้งสองวิธีช่วยให้คุณควบคุมแฟล็กแต่ละรายการได้อย่างแม่นยำ
const cleared = value & ~mask;มีการตรวจสอบจำนวนครั้งที่เลื่อน
Zig จะไม่อนุญาตให้คุณเลื่อนเกินจำนวนบิตที่ชนิดข้อมูลรองรับ จำนวนการเลื่อนที่อยู่นอกช่วงคือข้อผิดพลาดที่ระบุไว้ ไม่ใช่ข้อมูลขยะที่เกิดขึ้นอย่างเงียบ ๆ
เหตุใดบิตจึงสำคัญ
การดำเนินการกับบิตเป็นพื้นฐานของแฟล็ก สิทธิ์ รีจิสเตอร์ฮาร์ดแวร์ และข้อมูลขนาดกะทัดรัด ช่วยให้คุณจัดเก็บคำตอบแบบจริงหรือเท็จได้หลายคำตอบไว้ในตัวเลขเดียว
ตรวจสอบอย่างรวดเร็ว
คุณต้องการให้บิตถูกตั้งค่าเฉพาะเมื่ออินพุตทั้งสองแตกต่างกัน ควรใช้ตัวดำเนินการใด
สรุป: เชี่ยวชาญเรื่องบิต
ตอนนี้คุณสามารถใช้ &, |, ^, ~ รวมถึงการเลื่อน << และ >> เพื่ออ่าน ตั้งค่า ล้างค่า และเลื่อนบิตได้อย่างแม่นยำเต็มที่ ⚙️
คำถามที่พบบ่อย
บทเรียน “ตัวดำเนินการระดับบิต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวดำเนินการระดับบิต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวดำเนินการระดับบิต”
AND, OR, XOR, NOT และการเลื่อนบิต คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวดำเนินการระดับบิต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวดำเนินการเลขคณิตและการเปรียบเทียบ
- ค่าล้น: + เทียบกับ +% เทียบกับ +|
- ตัวดำเนินการระดับบิต
- ตรรกะบูลีนและการหยุดประเมินลัดวงจร