0Pricing
C# Academy · บทเรียน

ตัวดำเนินการระดับบิตและการเลื่อนบิต

จัดการบิตด้วย &, |, ^, ~ และการเลื่อนบิต

ตัวดำเนินการระดับบิตและการเลื่อนบิต เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

บิตและเลขฐานสอง

จำนวนเต็มจัดเก็บในรูปบิต ตัวดำเนินการระดับบิตจะทำงานกับบิตแต่ละบิต C# มีตัวดำเนินการ &, |, ^, ~, << และ >>

using System;

class Program {
    static void Main() {
        int x = 5;
        Console.WriteLine(Convert.ToString(x, 2));
    }
}

AND ระดับบิต: &

& จะตั้งค่าบิตเป็น 1 ก็ต่อเมื่อบิตทั้งสองเป็น 1 5 & 3 จะเปรียบเทียบ 101 กับ 011 แล้วได้ 001 = 1

using System;

class Program {
    static void Main() {
        Console.WriteLine(5 & 3);
        Console.WriteLine(12 & 10);
    }
}

OR ระดับบิต: |

| จะตั้งค่าบิตเป็น 1 เมื่อมีบิตด้านใดด้านหนึ่งเป็น 1 5 | 3 จะได้ 111 = 7

using System;

class Program {
    static void Main() {
        Console.WriteLine(5 | 3);
        Console.WriteLine(8 | 1);
    }
}

XOR ระดับบิต: ^

^ จะตั้งค่าบิตเป็น 1 เมื่อบิตแตกต่างกัน 5 ^ 3 จะได้ 110 = 6

using System;

class Program {
    static void Main() {
        Console.WriteLine(5 ^ 3);
        Console.WriteLine(7 ^ 7);
    }
}

NOT ระดับบิต: ~

~ จะสลับบิตทุกบิต เนื่องจากใช้การแทนค่าแบบส่วนเติมเต็มสอง ~n จึงเท่ากับ -(n + 1)

using System;

class Program {
    static void Main() {
        Console.WriteLine(~5);
        Console.WriteLine(~0);
    }
}

การเลื่อนบิตไปทางซ้าย: &lt;&lt;

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

using System;

class Program {
    static void Main() {
        Console.WriteLine(1 << 3);
        Console.WriteLine(5 << 1);
    }
}

การเลื่อนบิตไปทางขวา: &gt;&gt;

>> จะเลื่อนบิตไปทางขวา สำหรับจำนวนบวก การเลื่อนแต่ละตำแหน่งจะทำให้ค่าลดลงครึ่งหนึ่ง: 20 >> 2 มีค่าเท่ากับ 5

using System;

class Program {
    static void Main() {
        Console.WriteLine(20 >> 2);
        Console.WriteLine(8 >> 1);
    }
}

มาสก์บิต

มาสก์ใช้แยกบิตที่ต้องการออกมา ใช้ AND ระหว่างค่ากับมาสก์เพื่อเก็บไว้เฉพาะบิตเหล่านั้น

using System;

class Program {
    static void Main() {
        int value = 0b1011;
        int mask = 0b0110;
        Console.WriteLine(value & mask);
    }
}

การตั้งค่าและล้างบิต

ใช้ | กับมาสก์ที่มีบิตเดียวเพื่อกำหนดบิตให้เป็น 1 และใช้ & กับมาสก์ที่กลับบิตแล้วเพื่อล้างบิตนั้น

using System;

class Program {
    static void Main() {
        int flags = 0;
        flags |= (1 << 2);
        Console.WriteLine(flags);
        flags &= ~(1 << 2);
        Console.WriteLine(flags);
    }
}

การตรวจสอบบิต

หากต้องการตรวจสอบว่าบิตถูกตั้งค่าไว้หรือไม่ ให้ใช้ AND กับมาสก์ของบิตนั้น แล้วเปรียบเทียบกับค่าที่ไม่ใช่ศูนย์

using System;

class Program {
    static void Main() {
        int flags = 0b0100;
        bool isSet = (flags & (1 << 2)) != 0;
        Console.WriteLine(isSet);
    }
}

การเลื่อนบิตเพื่อคูณอย่างรวดเร็ว

การเลื่อนบิตเป็นวิธีที่รวดเร็วในการคูณหรือหารด้วยเลขยกกำลังของสอง ซึ่งมักใช้ในโค้ดที่ต้องคำนึงถึงประสิทธิภาพ

using System;

class Program {
    static void Main() {
        int n = 7;
        Console.WriteLine(n << 2);
        Console.WriteLine(n >> 1);
    }
}

ตรวจสอบความเข้าใจ

ทดสอบความรู้ของคุณเกี่ยวกับการดำเนินการระดับบิต

สรุปทบทวน

ตัวดำเนินการระดับบิตทำงานทีละบิต: & คือ AND, | คือ OR, ^ คือ XOR และ ~ คือ NOT การเลื่อนบิต << และ >> จะเลื่อนบิตไปทางซ้ายหรือขวาเพื่อคูณหรือหารด้วยเลขยกกำลังของสอง

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

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

บทเรียน “ตัวดำเนินการระดับบิตและการเลื่อนบิต” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ตัวดำเนินการระดับบิตและการเลื่อนบิต”

จัดการบิตด้วย &, |, ^, ~ และการเลื่อนบิต คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ตัวดำเนินการระดับบิตและการเลื่อนบิต” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

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

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

  1. ตัวดำเนินการเลขคณิตและการกำหนดค่า
  2. ตัวดำเนินการเปรียบเทียบและตรรกะ
  3. ตัวดำเนินการระดับบิตและการเลื่อนบิต
  4. ลำดับความสำคัญและการจับกลุ่มของตัวดำเนินการ
← กลับไปที่ C# Academy