Jitrak Blog

วงแหวนเว็บ

Bitwise C# [2/3] Bitwise Operator

January 10, 2020

บทความนี้เป็นการนำบทความที่เคยเขียนเมื่อหลายปีมาแล้ว มาทำการ Repost ใหม่

ต่อจากบทความที่แล้วนะครับ 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
บทความหน้าผมจะพาไปประยุกต์ใช้กันจริง ๆ เสียที Bitwise C# [3/3] Apply Bitwise

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


Written by Yosapol Jitrak, Who is interested in game development, FinTech, technology, agile and DevOps culture. Follow me on Facebook