0Pricing
Coding Interview Prep · บทเรียน

AND, OR, XOR และการเลื่อนบิต

อ่านและรวมบิตได้อย่างมั่นใจ

AND, OR, XOR และการเลื่อนบิต เป็นบทเรียน Coding Interview Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Coding Interview Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน

บิตคือเครื่องมือของคุณ

จริง ๆ แล้วจำนวนเต็มทุกตัวคือแถวของบิตที่มีเพียง 0 และ 1 การเรียนรู้วิธีอ่านและนำบิตเหล่านี้มารวมกันจะช่วยให้คุณใช้กลเม็ดที่รวดเร็วและชาญฉลาดในการแข่งขัน 🔧

ดูรูปฐานสอง

ใช้ bin() ของ Python เพื่อดูบิตของจำนวนใด ๆ คำนำหน้า 0b เพียงระบุว่าค่านั้นเป็นเลขฐานสอง ส่วนที่เหลือคือรูปแบบบิต

print(bin(13))  # 0b1101

AND เก็บบิตที่เหมือนกัน

ตัวดำเนินการ AND (&) ให้ค่า 1 เฉพาะตำแหน่งที่ตัวเลขทั้งสองมีค่าเป็น 1 เหมาะอย่างยิ่งสำหรับตรวจสอบหรือทำมาสก์บิตที่ตรงกัน

print(6 & 3)  # 0b110 & 0b011 = 0b010 = 2

OR รวมบิตเข้าด้วยกัน

ตัวดำเนินการ OR (|) ให้ค่า 1 ในทุกตำแหน่งที่ตัวเลขตัวใดตัวหนึ่งมีค่าเป็น 1 ใช้เปิดแฟล็กโดยไม่รบกวนบิตส่วนที่เหลือ

print(6 | 1)  # 0b110 | 0b001 = 0b111 = 7

XOR ตรวจจับความแตกต่าง

ตัวดำเนินการ XOR (^) ให้ค่า 1 ในตำแหน่งที่บิตทั้งสองแตกต่างกัน เป็นเครื่องมือยอดนิยมในการแข่งขันสำหรับสลับค่าและค้นหาค่าที่ปรากฏต่างจากตัวอื่น

print(6 ^ 3)  # 0b110 ^ 0b011 = 0b101 = 5

XOR ล้างตัวเอง

จำนวนใด ๆ เมื่อทำ XOR กับตัวมันเองจะได้ 0 เสมอ และการทำ XOR กับ 0 จะไม่เปลี่ยนค่า คุณสมบัติที่ล้างตัวเองนี้เป็นพื้นฐานของปริศนาXORจำนวนมาก

print(7 ^ 7)  # 0
print(7 ^ 0)  # 7

ค้นหาจำนวนที่ไม่ซ้ำ

หากทุกค่าvaluesปรากฏสองครั้ง ยกเว้นหนึ่งค่า ให้ทำ XOR กับค่าทั้งหมด แล้วคู่ที่ซ้ำกันจะหายไป สิ่งที่เหลืออยู่คือค่าที่ไม่ซ้ำ

ans = 0
for x in [4, 1, 2, 1, 2]:
    ans ^= x
print(ans)  # 4

การเลื่อนซ้ายทำให้ค่าคูณสอง

การเลื่อนซ้ายจะดันบิตขึ้นและเติมศูนย์ทางด้านขวา การเลื่อนหนึ่งตำแหน่งจะทำให้ค่าเพิ่มเป็นสองเท่า เหมือนการคูณด้วยกำลังของสอง

print(3 << 2)  # 3 * 4 = 12

การเลื่อนขวาทำให้ค่าหารสอง

การเลื่อนขวาจะตัดบิตทางปลายขวาออก การเลื่อนหนึ่งตำแหน่งจะลดค่าลงครึ่งหนึ่ง หรือเท่ากับการหารจำนวนเต็มด้วยกำลังของสอง

print(20 >> 2)  # 20 // 4 = 5

สร้างกำลังของสอง

การเลื่อน 1 ไปทางซ้าย k ตำแหน่งจะสร้างค่า2 ยกกำลัง kได้ทันที นี่เป็นวิธีที่สะอาดที่สุดในการสร้างมาสก์ที่มีบิตเดียว

print(1 << 5)  # 32

ความเร็วสำคัญในการแข่งขัน

ตัวดำเนินการระดับบิตทำงานได้ในขั้นตอนเดียวที่รวดเร็ว ดังนั้นการเปลี่ยนจากเลขคณิตมาใช้การเลื่อนบิตอาจช่วยให้ผ่านขีดจำกัดเวลาที่เกือบไม่ทันได้ คุณควรจดจำการใช้งานให้แม่น ⚡

ตรวจสอบอย่างรวดเร็ว

ได้เวลาทดสอบตัวดำเนินการบิตของคุณ

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

คุณได้รู้จัก AND, OR, XOR และการเลื่อนบิตแล้ว ได้แก่การรวม การสลับ และการปรับขนาดบิตในขั้นตอนเดียวที่รวดเร็ว สิ่งเหล่านี้เป็นพื้นฐานของกลเม็ดเกี่ยวกับบิตทั้งหมดต่อจากนี้ 🎉

คำถามที่พบบ่อย

บทเรียน “AND, OR, XOR และการเลื่อนบิต” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “AND, OR, XOR และการเลื่อนบิต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Coding Interview Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “AND, OR, XOR และการเลื่อนบิต”

อ่านและรวมบิตได้อย่างมั่นใจ คุณปฏิบัติ Coding Interview Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Coding Interview Prep หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Coding Interview Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “AND, OR, XOR และการเลื่อนบิต” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Coding Interview Prep นี้ได้ไหม

ได้ บทเรียน Coding Interview Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. AND, OR, XOR และการเลื่อนบิต
  2. ตั้งค่า ล้าง และสลับบิต
  3. นับบิตและบิตที่ถูกตั้งค่าต่ำสุด
  4. บิตมาสก์ในฐานะเซตขนาดเล็ก
← กลับไปที่ Coding Interview Prep