Translate

วันจันทร์ที่ 19 พฤษภาคม พ.ศ. 2557

บทที่2 ตัวดำเนินการในภาษาC หรือ C++

ตัวดำเนินการในภาษาซี หรือ 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 + 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

อ้างอิงจาก


2 ความคิดเห็น:

  1. ตัวดำเนินการคณิตศาสตร์ (Arithmetic Operators)
    Thank you very much but I think A=30 and B must be equal to 10 not 20, please check.

    ตอบลบ
  2. thanks for the information, for more updated information about c language operator and C programs, you can refer from here as well,
    thanks in advance.

    ตอบลบ