บทความนี้รวบรวมเนื้อหาเกี่ยวกับเครื่องหมายดำเนินการ (Operators) ที่ใช้ใน C++ เพื่อใช้เขียนนิพจน์ (Expression) ของคำสั่ง โดยเครื่องหมายดำเนินการแบ่งเป็น 5 กลุ่ม คือ เครื่องหมายดำเนินการทางคณิตศาสตร์ (Arithmetic) เครื่องหมายดำเนินการทางบูล (Boolean) เครื่องหมายดำเนินการเปรียบเทียบ (Comparison) เครื่องหมายดำเนินการทางบิต (bitwise) และเครื่องหมายดำเนินการแบบประกอบกัน (Compound)
เครื่องหมายดำเนินการทางคณิตศาสตร์
เครื่องหมายดำเนินการทางคณิตศาสตร์เป็นเครื่องหมายเกี่ยวกับการคำนวณ โดยรูปแบบของการใช้งานอยู่ในรูปแบบต่อไปนี้
LOpr Operator ROpr
รายการเครื่องหมายดำเนินการเป็นดังนี้
ชื่อเรียก | เครื่องหมาย | ความหมาย |
---|---|---|
กำหนดค่า | = | นำค่าจาก ROpr ไปเก็บใน LOpr |
การบวก | + | คืนค่าผลการบวก LOpr ด้วย ROpr |
การลบ | – | คืนค่าการลบ LOpr ด้วย ROpr |
การคูณ | * | คืนค่าผลการคูณ LOpr ด้วย ROpr |
การหาร | / | คืนค่าการหาร LOpr ด้วย ROpr |
การหาเศษจากการหาร | % | คืนค่าการหาเศษจากการหาร LOpr ด้วย ROpr |
เครื่องหมายดำเนินการทางบูล
เครื่องหมายดำเนินการทางบูลเป็นการเปรียบเทียบทางตรรกะ ซึ่งใน C++ มองค่า false เป็น 0 ส่วนค่า true คือค่าใด ๆ ที่ไม่ใช่ 0 โดยการกระทำทางตรรกะประกอบด้วย การและ การหรือ และนิเสธ ดังตารางต่อไปนี้
ชื่อเรียก | เครื่องหมาย | การใช้งาน | ความหมาย |
---|---|---|---|
และ | && | LOpr && ROpr | ถ้า LOpr และ ROprเป็น true คืนค่าการดำเนินการเป็น true กรณีอื่น คืนค่าเป็น false |
หรือ | || | LOpr || ROpr | ถ้า LOpr หรือ ROprเป็น true คืนค่าการดำเนินการเป็น true ยกเว้นกรณี ถ้า LOpr และ ROpr เป็น false จะคืนค่าเป็น false |
นิเสธ | ! | ! Operand | ถ้า Operand เป็น true จะคืนค่าเป็น false แต่ถ้า Operand เป็น false จะคืนค่าเป็น true |
เครื่องหมายดำเนินการเปรียบเทียบ
เครื่องหมายดำเนินการเปรียบเทียบเป็นเครื่องหมายเกี่ยวกับการเปรียบค่าทางซ้ายกับค่าทางขวา และให้คำตอบกลับมาเป็น true หรือ false โดยรูปแบบของการใช้งานอยู่ในรูปแบบต่อไปนี้
LOpr Operator ROpr
รายการเครื่องหมายดำเนินการเป็นดังนี้
ชื่อเรียก | เครื่องหมาย | ความหมาย |
---|---|---|
เท่ากัน | == | คืนค่าเป็นจริงถ้า LOpr เท่ากับ ROpr |
ไม่เท่ากัน | != | คืนค่าเป็นจริงถ้า LOpr ไม่เท่ากับ ROpr |
น้อยกว่า | < | คืนค่าเป็นจริงถ้า LOpr น้อยกว่า ROpr |
มากกว่า | > | คืนค่าเป็นจริงถ้า LOpr มากกว่า ROpr |
น้อยกว่าหรือเท่ากัน | <= | คืนค่าเป็นจริงถ้า LOpr น้อยกว่าหรือเท่ากันกับ ROpr |
มากกว่าหรือเท่ากัน | >= | คืนค่าเป็นจริงถ้า LOpr มากกว่าหรือเท่ากันกับ ROpr |
เครื่องหมายดำเนินการทางบิต
เครื่องหมายดำเนินการทางบิตมีความแตกต่างจากการดำเนินการแบบบูลตรงที่ การดำเนินการแบบบูลนั้นพิจารณาค่าของตัวดำเนินการ ถ้ามีค่าเป็น 00 หมายถึงเป็น false และถ้าไม่ใช่ 0 มองค่านั้นเป็น true แต่กรณีของการดำเนินการทางบิตนั้นเป็นการกระทำในระดับบิต โดยเทียบบิตของแต่ละหลักของตัวดำเนินการทางซ้ายและทางขวาตามคุณสมบัติของการเปรียบเทียบเพื่อสร้างบิตผลลัพธ์ของบิตในหลักนั้นออกมา ซึ่งเครื่องหมายที่ใช้ในกลุ่มนี้คือ การและ การหรือ การเอ็กคลูซีฟออร์ และการกลับบิต
Bit-LOpr | Bit-ROpr | Bit-LOpr & Bit-ROpr |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Bit-LOpr | Bit-ROpr | Bit-LOpr | Bit-ROpr |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Bit-LOpr | Bit-ROpr | Bit-LOpr ^ Bit-ROpr |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Bit-Operand | ~ Bit-Operand |
---|---|
0 | 1 |
1 | 0 |
นอกจากการดำเนินการที่กล่าวไปแล้ว การดำเนินการทางบิตมีอีก 2 คำสั่งคือ การเลื่อนบิตไปทางซ้ายและการเลื่อนบิตไปทางขวา ซึ่งรูปแบบของการใช้งานเป็นดังนี้
Operand << จำนวนบิตที่ต้องการเลื่อนไปทางซ้าย
Operand >> จำนวนบิตที่ต้องการเลื่อนไปทางขวา
เครื่องหมายดำเนินการแบบประกอบกัน
เครื่องหมายดำเนินการแบบประกอบกันเป็นการรวมขั้นตอนการสั่งงานให้เหลือเพียงคำสั่งเดียว ซึ่งเครื่องหมายในกลุ่มนี้เป็นดังนี้
ชื่อเรียก | เครื่องหมาย | การใช้งาน | ความหมาย |
---|---|---|---|
การเพิ่มค่า | ++ | operand++ | 1. นำค่า Operand ไปใช้งาน 2. Operand = Operand+1 |
การเพิ่มค่า | ++ | ++operand | 1. Operand = Operand+1 2. นำค่า Operand ไปใช้งาน |
การลดค่า | — | operand— | 1. นำค่า Operand ไปใช้งาน 2. Operand = Operand-1 |
การลดค่า | — | —operand | 1. Operand = Operand-1 2. นำค่า Operand ไปใช้งาน |
การบวก | += | LOpr += ROpr | LOpr = LOpr + ROpr |
การลบ | -= | LOpr -= ROpr | LOpr = LOpr – ROpr |
การคูณ | *= | LOpr *= ROpr | LOpr = LOpr * ROpr |
การหาร | /= | LOpr /= ROpr | LOpr = LOpr / ROpr |
การหาเศษจากการหาร | %= | LOpr %= ROpr | LOpr = LOpr % ROpr |
และ | &= | LOpr &= ROpr | LOpr = LOpr & ROpr |
หรือ | |= | LOpr |= ROpr | LOpr = LOpr | ROpr |
สรุป
จากบทความนี้ผู้อ่านได้ทำความรู้จักกับเครื่องหมายดำเนินการต่าง ๆ ในภาษา C++ ของ Arduino เป็นที่เรียบร้อยแล้ว ในบทความตอนหน้าจะเป็นการทำความรู้จักกับการสร้างนิพจน์ (expression) สุดท้ายขอให้สนุกกับการเขียนโปรแกรมครับ
เอกสารอ้างอิง
(C ) 2020-2021, โดย อ.ดนัย เจษฎาฐิติกุล/อ.จารุต บุศราทิจ
ปรับปรุงเมื่อ 2021-05-24, 2021-09-18