ตัวดำเนินการระดับบิตและการเลื่อนบิต
จัดการบิตด้วย &, |, ^, ~ และการเลื่อนบิต
ตัวดำเนินการระดับบิตและการเลื่อนบิต เป็นบทเรียน 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);
}
}การเลื่อนบิตไปทางซ้าย: <<
<< จะเลื่อนบิตไปทางซ้ายและเติมศูนย์ทางขวา การเลื่อนหนึ่งตำแหน่งจะทำให้ค่าเพิ่มเป็นสองเท่า: 1 << 3 มีค่าเท่ากับ 8
using System;
class Program {
static void Main() {
Console.WriteLine(1 << 3);
Console.WriteLine(5 << 1);
}
}การเลื่อนบิตไปทางขวา: >>
>> จะเลื่อนบิตไปทางขวา สำหรับจำนวนบวก การเลื่อนแต่ละตำแหน่งจะทำให้ค่าลดลงครึ่งหนึ่ง: 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวดำเนินการเลขคณิตและการกำหนดค่า
- ตัวดำเนินการเปรียบเทียบและตรรกะ
- ตัวดำเนินการระดับบิตและการเลื่อนบิต
- ลำดับความสำคัญและการจับกลุ่มของตัวดำเนินการ