ตัวดำเนินการในภาษาซี หรือ C++
(C++ operator)
ตัวดำเนินการในภาษาc++ นี้มีอยู่หลายตัวด้วยกันครับ ในความคิดเห็นส่วนตัวผมแล้วคิดว่าส่วนที่ใช้มากที่สุดก็คือตัวดำเนินการจำพวก บวก ลบ คูณ หาร ตามคณิตศาสตร์ทั่วไปครับ จะได้ใช้บ่อยมาก และส่วนที่ใช้บ่อยรองลงมาก็คือตัวดำเนินส่วนที่ใช้เปรียบเทียบครับเช่น มากกว่า น้อยกว่า เท่ากับ ไม่เท่ากับ มากกว่าเท่ากับ น้อยกว่าเท่ากับ พวกนี้ใช้บ่อยครับ ที่สำคัญพวกที่ลืมไม่ไดเลยครับพวกตัวดำเนินการที่ใช้เชื่อมครับ เช่น &&(และ) ||(หรือ) ซึ่งส่วนที่เหลือก็มีความสำคัญนะครับไม่ใช่ว่าเข้าใจแต่ส่วนที่ผมบอกว่าสำคัญ ผมคิดว่าควรจะเข้าใจทั้งหมดครับ แต่เลือกจำเฉพาะส่วนที่ใช่บ่อยหรือสำคัญ ซึ่งตัวดำเนินการใบภาษาC++โดยส่วนใหญ่จะแบ่งกันเป็นประเภทใหญ่ๆ5กลุ่มครับ ตามลักษณะการใช้งาน ดังนี้
- Arithmetic Operators(ตัวดำเนินการคณิตศาสตร์)
- Relational Operators(ตัวดำเนินการความสัมพันธ์)
- Logical Operators(ตัวดำเนินการเชิงตรรกะ)
- Bitwise Operators(ตัวดำเนินการบิตไวส์)
- Assignment Operators(ตัวดำเนินการกำหนดค่า)
ตัวดำเนินการคณิตศาสตร์ (Arithmetic Operators)
เป็นตัวดำเนินการจำพวกใช้คำนวนครับ พวกนี้เข้าใจง่าย และจำได้ตั้งแต่เด็กครับจะมีบางส่วนที่เพิ่มเข้ามาใหม่ครับ ส่วนที่เข้ามาใหม่นั้นส่วนใหญ่จะเป็นการเขียนรูปแบบเพื่อการประหยดเวลาในการเขียนโปรแกรมครับ ตอนนี้คงยังไม่ได้ใช้กันครับ แต่ถ้าคุณมีความรู้พื้นฐานอยู่แล้วผมแนะนำให้นำไปใช้ครับ เพราะมันจะช่วยให้คุณประหยัดเวลาได้มากเลย
กำหนดให้ตัวแปร A มีค่าเท่ากับ 30 (A=30) และตัวแปร B มีค่าเท่ากับ 20 (B=20)
กำหนดให้ตัวแปร A มีค่าเท่ากับ 30 (A=30) และตัวแปร B มีค่าเท่ากับ 20 (B=20)
ตารางตัวดำเนินการคณิตศาสตร์ และตัวอย่างการใช้
ตัวดำเนินการ
|
อธิบาย
|
ตัวอย่าง
|
+
|
การบวก
|
A + B = 40
|
-
|
การลบ
|
A - B =20
|
*
|
การคูณ
|
A * B = 300
|
/
|
การหาร
|
A / B = 3
|
%
|
การModulus หรือ การหารเอาเศษ
|
A % B = 0
|
++
|
การบวกเพิ่มค่าตัวแปรนั้นๆจากเดิมอีก1
|
A++ = 31
|
--
|
การลบค่าตัวแปรนั้นๆจากเดิมลงไป1
|
A-- = 29
|
จะเห็นว่าไม่ยากเลยใช่มั้ยครับเพื่อนๆ ตัวดำเนินการคณิตศาสตร์นั้น ก็เหมือนกันเครื่องหมายคณิตศาสตร์ที่เราใช้ในชีวิตประจำวัน จะมีบางตัวเท่านั้นที่ควรดูเป็นพิเศษครับ
ตัวที่1 คือ ++ เจ้าตัวนี้จะทำให้ค่าของตัวแปรบวกเพิ่มไปอีก1ครับ เช่น A=1;A++; ดังนั้นจะได้ว่าA มีค่าเท่ากับ2ครับ หรือมองง่ายๆ A++เท่ากับA=A+1 นั่นเองครับ
ตัวที่2 คือ -- เจ้าตัวนี้จะทำให้ค่าของตัวแปรลดลงไป1ครับ เช่น B=1;B--; ดังนั้นจะได้ว่าB มีค่าเท่ากับ0ครับ หรือมองง่ายๆ B—เท่ากับB=B-1 นั่นเองครับ
ตัวที่3 คือ % เจ้าตัวนี้คือการmodครับ รู้จักกันมั้ยเอ่ย? มันคือการหารเอาเศษครับ เช่น5%2=1 เพราะ5/2 ได้2เศษ1 ตัวนี้สำคัญครับได้ใช้บ่อยมาก
-----------------------------------------------------
ตัวดำเนินการความสัมพันธ์ (Relational Operators)
เป็นตัวดำเนินการจำพวกใช้เปรียบเทียบครับ ตัวดำเนินการพวกนี้จะใช้มากในส่วนของเงื่อนไข และลูปครับ ซึ่งจะอธิบายในบทต่อไป หมายความของตัวดำเนินการก็เข้าใจง่ายครับ ไม่ยากเลย เราได้เรียนกันมากนานแล้วครับ จะมีบางตัวเท่านั้นก็แปรกตากว่าชาวบ้าน นั่นคือ != เครื่องหมายตัวแรก ! แสดงถึงการปฏิเสธครับ ส่วนเครื่องหมายตัวที่สอง = ก็คือ เท่ากับครับ รวมเป็น ไม่เท่ากับ ส่วนตัวดำเนินการอื่นเชิญศึกษาได้ตามตารางครับ
กำหนดให้ตัวแปร A มีค่าเท่ากับ 30 (A=30) และตัวแปร B มีค่าเท่ากับ 20 (B=20)
ตารางตัวดำเนินการความสัมพันธ์และตัวอย่างการใช้
ตัวดำเนินการ
|
อธิบาย
|
ตัวอย่าง
|
==
|
ตรวจสอบว่าตัวทั้งสองมีค่าเท่ากันหรือไม่
|
(A == B) เป็นเท็จ
|
!=
|
ตรวจสอบว่าตัวทั้งสองมีค่าไม่เท่ากันหรือไม่
|
(A != B) เป็นจริง
|
>
|
ตรวจสอบว่าตัวแปรที่1มีค่ามากกว่าตัวแปรที่2หรือไม่
|
(A > B) เป็นจริง
|
<
|
ตรวจสอบว่าตัวแปรที่1มีค่าน้อยกว่าตัวแปรที่2หรือไม่
|
(A < B) เป็นเท็จ
|
>=
|
ตรวจสอบว่าตัวแปรที่1มีค่ามากกว่า หรือเท่ากับตัวแปรที่2หรือไม่
|
(A >= B) เป็นจริง
|
<=
|
ตรวจสอบว่าตัวแปรที่1มีค่าน้อยกว่า หรือเท่ากับตัวแปรที่2หรือไม่
|
(A <= B) เป็นเท็จ
|
สิ่งทีควรจำก็คือ>= และ<= โดยต้องจำไว้ว่าเครื่องหมาย<และเครื่องหมาย> จะต้องอยู่ข้างหน้าเครื่องหมาย=
-----------------------------------------------------
ตัวดำเนินการเชิงตรรกะ (Logical Operators)
เป็นตัวดำเนินการจำพวกใช้เชื่อมครับ ตัวดำเนินการพวกนี้จะใช้มากในส่วนของเงื่อนไข และลูปครับ ซึ่งจะอธิบายในบทต่อไป บางคนอาจจำได้เพราะเคยเรียนมาตอนม.ปลายแล้วครับ วิชาคณิตศาสตร์ ในบทตรรกะศาสตร์ไงครับ มีความหมายตามนั้นเลยครับ
กำหนดให้ตัวแปร A มีค่าเท่ากับ 1 (A=1) และตัวแปร B มีค่าเท่ากับ 0 (B=0)
ตารางตัวดำเนินการเชิงตรรกะ และตัวอย่างการใช้
ตัวดำเนินการ
|
อธิบาย
|
ตัวอย่าง
|
&&
|
เครื่องหมายและในทางตรรกะ หรือเครื่องหมายandในทางดิจิตัล
|
(A && B) เป็นเท็จ
|
||
|
เครื่องหมายหรือในทางตรรกะ หรือเครื่องหมายorในทางดิจิตัล
|
(A || B) เป็นจริง
|
!
|
เครื่องหมายnotในทางตรรกะ และ ในทางดิจิตัล
|
!(A&&B) เป็นจริง
|
-----------------------------------------------------
ตัวดำเนินการบิตไวส์ (Bitwise Operators)
ตัวดำเนินการพวกนี้จะใช้ในการกระทำของบิตไวส์ครับ สำหรับผู้เริ่มต้นแล้วไม่ค่อยได้ใช้หรอกครับ คุณสามารถมองผ่านๆได้เลยครับ หากใครต้องการใช้ก็สามารถศึกษาได้จากตารางนะครับ ความหมายหรือการกระทำผมแนะนำว่าเหมือนเครื่องหมายในทางดิจิตัลครับ
ตารางทางบิตไวส์ เหมือนกับในทางดิจิตัลครับ
p
|
q
|
p & q
|
p | q
|
p ^ q
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
กำหนดให้ ถ้า A = 60; และ B = 13; จะได้ค่าเป็นเลขฐานสองคือ :
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
กำหนดให้ตัวแปร A มีค่าเท่ากับ 60 และ ตัวแปร B มีค่าเท่ากับ 13
ตารางตัวดำเนินการบิตไวส์
ตัวดำเนินการ
|
อธิบาย
|
ตัวอย่าง
|
&
|
Binary AND Operator
|
(A & B) will give 12, which is 0000 1100
|
|
|
Binary OR Operator
|
(A | B) will give 61, which is 0011 1101
|
^
|
Binary XOR Operator
|
(A ^ B) will give 49, which is 0011 0001
|
~
|
Binary Ones Complement Operator
|
(~A ) will give -61, which is 1100 0011 in 2's complement form.
|
<<
|
Binary Left Shift Operator
|
A << 2 will give 240 which is 1111 0000
|
>>
|
Binary Right Shift Operator
|
A >> 2 will give 15 which is 0000 1111
|
http://www.tutorialspoint.com/cprogramming/c_operators.htm
-----------------------------------------------------
ตัวดำเนินการกำหนดค่า (Assignment Operators)
ตัวดำเนินการพวกนี้ใช้ในทางการกำหนดค่าครับ อาจมีบางตัวที่ใช้คำนวณด้วยครับ จะเป็นว่าหากมีเครื่องหมาย บวก ลบ คูณ หาร อยู่หน้า้ครื่องหมายเท่ากับแล้วล่ะก็จะหมายถึงการคำนวณนั้นๆจากด้านขวาของเครื่องหมายเท่ากับ จะส่งมาให้กบตัวแปรด้านซ้ายมือของเครื่องหมาเท่ากับครับ
ตารางตัวดำเนินการกำหนดค่า และตัวอย่างการใช้
ตัวดำเนินการ
|
อธิบาย
|
ตัวอย่าง
|
=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับการดำเนินการด้านขวา
|
C = A + B
|
+=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายบวกตัวดำเนินการ
|
C += A หรือ C = C + A
|
-=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายลบตัวดำเนินการ
|
C -= A หรือ C = C - A
|
*=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายคูณตัวดำเนินการ
|
C *= A หรือ C = C * A
|
/=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายหารตัวดำเนินการ
|
C /= A หรือ C = C / A
|
%=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายหารเอาเศษตัวดำเนินการ
|
C %= A หรือ C = C % A
|
<<=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายshift ซ้ายตัวดำเนินการ
|
C <<= 2 หรือ C = C << 2
|
>>=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายshift ขวาตัวดำเนินการ
|
C >>= 2 หรือ C = C >> 2
|
&=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายandตัวดำเนินการ
|
C &= 2 หรือ C = C & 2
|
^=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้ายorตัวดำเนินการ
|
C ^= 2 หรือ C = C ^ 2
|
|=
|
ให้ตัวแปรด้านซ้ายมีค่าเท่ากับตัวแปรด้านซ้าย inclusive OR ตัวดำเนินการ
|
C |= 2 หรือ C = C | 2
|
อ้างอิงจาก
ไม่มีความคิดเห็น:
แสดงความคิดเห็น