การเขียนโปรแกรมภาษา C เบื้องต้น ตอนที่ 3 : ตัวดำเนินการ (Operators)

หายไปนานเลย กว่าจะมาเขียนบทนี้ได้ = =
ที่ผ่านมาเราได้เรียนรู้ตัวแปรและชนิดของตัวแปร เราสามารถที่จะจัดการหรือดำเนินการกับตัวแปรหรือตัวเลขได้ โดยใช้สิ่งที่เรียกว่า “ตัวดำเนินการ (Operator)”  ซึ่งในภาษา C นั้นมีตัวดำเนินการต่างๆดังนี้

ตัวดำเนินการคณิตศาสตร์ (Arithmetic operators)


+
Addition
-
Subtraction
*
Multiplication
/
Division
%
Modulo
++
Auto increment
--
Auto decrement
ตัวดำเนินการ +, –, *, / ก็คือ บวก ลบ คูณ หาร เหมือนในคณิตศาสตร์ตามปกติทั่วไป ที่พิเศษนิดนึงคือ % ตัวดำเนินการนี้เรียกว่า modulo โดยจะดำเนินการเอาเศษที่เหลือของการหารเช่น

x = 10 % 3;
x จะมีค่าเท่ากับ 1 ซึ่งเป็นเศษที่เหลือจากการหารระหว่าง 10 กับ 3
ส่วน ++,-- คือการเพิ่มค่าทีละ 1 และลดค่าทีละ 1 ตามลำดับ

ตัวดำเนินการผสมกำหนดค่า (Compound Assignment operators)


expression
เทียบเท่ากับ 
value += increase;
value = value + increase;
x += 5;
x = x + 5;
x *= 2;
x = x * 2;

ตัวดำเนินการเปรียบเทียบ (Relational operators) 


==
เท่ากับ
!=
ไม่เท่ากับ
>
มากกว่า
<
น้อยกว่า
>=
มากกว่าหรือเท่ากับ
<=
น้อยกว่าหรือเท่ากับ

ตัวอย่างการใช้งาน

(10==8);   // เป็นเท็จ
(4>5);     //เป็นเท็จ
(5>4);     //เป็นจริง
โดยการเปรียบเทียบนี้ไม่จำเป็นต้องจะต้องเป็นตัวเลขเสมอไป เราสามารถนำตัวแปรเข้าไปเปรียบเทียบได้ และให้ ระวังการใช้ตัวดำเนินการ = เพราะว่าจะไม่เหมือนกับ == (จากประสบการณ์ที่พบเจอมา มือใหม่จะพลาดตรงนี้กันเยอะ)

ตัวดำเนินการทางตรรกะ (Logical operators) 


ตัวดำเนินการ
ความหมาย
&&
AND
||
OR
!
NOT
การใช้งานตัวดำเนินการ && และ || นั้นจะใช้งานเพื่อเปรียบเทียบ expressions โดยผลลัพธ์ที่ออกมาจะเป็นเพียงแค่ true หรือ false เท่านั้น เช่น
((5 == 5) && (3 > 6));   // เป็นเท็จ (true && false)
((5 == 5) || (3 > 6));   // เป็นจริง (true || false)

ตัวดำเนินการระดับบิต (Bitwise operators)


ตัวดำเนินการ
ความหมาย
ตัวอย่าง
ผลลัพธ์
~
complement
a = ~b;
b = 5 , a = -5
<<
shift left
a = b >> 2;
b = 11110011 , a = 11001100
>>
shift right
a = b >> 2;
b = 11110011 , a = 00011110
&
AND
c = a & b;
a = 11100011 
b = 11001100
c = 11000000
|
OR
c = a | b;

a = 11100011
b = 11001100

c = 11101111
^
EXOR
c = a ^ b;

a = 11100011
b = 11001100

c = 00101111

จบซักที เจอกันบทหน้า เรื่องโครงสร้างควบคุมครับ

Comments

Popular posts from this blog

MCS-51 Based Tachometer (เครื่องวัดความเร็วรอบ)

สร้าง Traindata สำหรับ OCR ด้วย Tesseract

การเชื่อมต่อและการเขียนโปรแกรมใช้งาน Rotary Encoder แบบ X4 Counting