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