Praneat Blog

Yosapol Jitrak
Game Developer & Game Infrastructure
28 Sep 2017

Bitwise C# [2/3] Bitwise Operator

ต่อจากบทความที่แล้วนะครับ Bitwise C# [1/3] Why to Bitwise

ก่อนหน้าที่จะไปประยุกต์ใช้อย่างไรนั้น
ขอกล่าวถึง Bitwise Operator ใน C# ก่อน

&(AND)

ตัวดำเนินการ AND จะให้ผลลัพธ์เป็น bit ที่มีเหมือนกันของตัวถูกดำเนินการทั้งสอง

5 & 3 = 1

เลขฐาน 10 เลขฐาน 2
5 0000 0101
3 0000 0011
1 0000 0001


| (OR)

ตัวดำเนินการ OR จะให้ผลลัพธ์เป็น bit ที่มีทั้งหมดของตัวถูกดำเนินการทั้งสอง

5 | 3 = 7

เลขฐาน 10 เลขฐาน 2
5 0000 0101
3 0000 0011
7 0000 0111


^ (XOR)

ตัวดำเนินการ XOR จะให้ผลลัพธ์เป็น bit ที่มีแค่ตัวใดตัวหนึ่งของตัวถูกดำเนินการเท่านั้น

5 ^ 3 = 6

เลขฐาน 10 เลขฐาน 2
5 0000 0101
3 0000 0011
6 0000 0110


<< (Left Shift)

ตัวดำเนินการ Left Shift จะให้ผลลัพธ์เป็นทุก bit ที่ย้ายไปทางด้านซ้ายของตัวดำเนินการฝั่งซ้าย
ตามจำนวนที่ระบุไว้ในตัวดำเนินการฝั่งขวา

5 << 2 = 20

เลขฐาน 10 เลขฐาน 2
5 0000 0101
20 0001 0100


>> (Right Shift)

ตัวดำเนินการ Right Shift จะให้ผลลัพธ์เป็นทุก bit ที่ย้ายไปทางด้านขวาของตัวดำเนินการฝั่งซ้าย
ตามจำนวนที่ระบุไว้ในตัวดำเนินการฝั่งขวา

5 >> 2 = 1

เลขฐาน 10 เลขฐาน 2
5 0000 0101
1 0000 0001


~ (Ones Complement)

ตำดำเนินการ Ones Complement จะให้ผลลัพธ์กลับค่าของตัวถูกดำเนินการ

~5 = 250

เลขฐาน 10 เลขฐาน 2
5 0000 0101
250 1111 1010


จบไปอีกเรื่องกับ Bitwise Operator
บทความหน้าผมจะพาไปประยุกต์ใช้กันจริง ๆ เสียที


Link: Bitwise C# [1/3] Why to Bitwise
Link: Bitwise C# [3/3] Apply Bitwise