0Pricing
Zig Academy · บทเรียน

ตัวดำเนินการระดับบิต

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตัวดำเนินการเลขคณิตและการเปรียบเทียบ
  2. ค่าล้น: + เทียบกับ +% เทียบกับ +|
  3. ตัวดำเนินการระดับบิต
  4. ตรรกะบูลีนและการหยุดประเมินลัดวงจร
← กลับไปที่ Zig Academy