Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โอเปอเรเตอร์ประเภทต่างๆ ใน ​​C++


มีตัวดำเนินการหลายประเภทใน C++ สิ่งเหล่านี้สามารถจัดประเภทกว้างๆ ได้ดังนี้:เลขคณิต เชิงสัมพันธ์ ตรรกะ ระดับบิต การมอบหมาย และตัวดำเนินการอื่นๆ

ตัวดำเนินการเลขคณิต

สมมติว่าตัวแปร A มีค่า 10 และตัวแปร B มีค่าเท่ากับ 20 จากนั้น -

ตัวดำเนินการ
คำอธิบาย
+
เพิ่มตัวถูกดำเนินการสองตัว A + B จะให้30
-
ลบตัวถูกดำเนินการที่สองออกจากตัวแรก A - B จะให้ -10
*
คูณตัวถูกดำเนินการทั้งสอง A * B จะให้ 200
/
แบ่งตัวเศษด้วยตัวลบ B / A จะให้2
%
ตัวดำเนินการโมดูลัสและส่วนที่เหลือหลังการหารจำนวนเต็ม B % A จะให้ 0
++
ตัวดำเนินการเพิ่ม เพิ่มค่าจำนวนเต็มทีละหนึ่ง A++ จะให้ 11
--
ตัวดำเนินการลด ลดค่าจำนวนเต็มลงหนึ่งค่า A-- จะให้ 9


ตัวดำเนินการเชิงสัมพันธ์

สมมติว่าตัวแปร A มีค่า 10 และตัวแปร B มีค่าเท่ากับ 20 จากนั้น -

ตัวดำเนินการ
คำอธิบาย
==
ตรวจสอบว่าค่าของตัวถูกดำเนินการสองตัวเท่ากันหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A ==B) ไม่เป็นความจริง
!=
ตรวจสอบว่าค่าของตัวถูกดำเนินการสองตัวเท่ากันหรือไม่ ถ้าค่าไม่เท่ากัน เงื่อนไขจะกลายเป็นจริง (A !=B) เป็นจริง
>
ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายมากกว่าค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A> B) ไม่เป็นความจริง
<
ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายน้อยกว่าค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A
>=
ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายมากกว่าหรือเท่ากับค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A>=B) ไม่เป็นความจริง
<=
ตรวจสอบว่าค่าของตัวถูกดำเนินการทางซ้ายน้อยกว่าหรือเท่ากับค่าของตัวถูกดำเนินการทางขวาหรือไม่ ถ้าใช่ เงื่อนไขจะกลายเป็นจริง (A <=B) เป็นจริง


ตัวดำเนินการเชิงตรรกะ

สมมติว่าตัวแปร A มีค่า 1 และตัวแปร B มีค่า 0 แล้ว -

ตัวดำเนินการ
คำอธิบาย
&&
เรียกว่าตัวดำเนินการตรรกะ AND ถ้าตัวถูกดำเนินการทั้งสองไม่ใช่ศูนย์ เงื่อนไขจะกลายเป็นจริง (A &&B) จะเป็นเท็จ
||
เรียกว่าตรรกะหรือตัวดำเนินการ ถ้าตัวถูกดำเนินการสองตัวใดที่ไม่ใช่ศูนย์ เงื่อนไขจะกลายเป็นจริง (A || B) เป็นจริง
!
เรียกว่า Logical NOT Operator ใช้เพื่อย้อนกลับสถานะตรรกะของตัวถูกดำเนินการ หากเงื่อนไขเป็นจริง ตัวดำเนินการ Logical NOT จะทำให้เท็จ!(A &&B) เป็นจริง


ตัวดำเนินการระดับบิต

ตัวดำเนินการ Bitwise ทำงานบนบิตและดำเนินการแบบทีละบิต ตารางความจริงของ &, | และ ^ มีดังต่อไปนี้

pqp & qp | qp ^ q
00000
01011
11110
10011


สมมติว่า 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 &B) จะให้ 12 ซึ่งเท่ากับ 0000 1100
|
Binary OR Operator คัดลอกเล็กน้อยหากมีอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่ง (A | B) จะให้ 61 ซึ่งก็คือ 0011 1101
^
Binary XOR Operator จะคัดลอกบิตหากตั้งค่าไว้ในตัวถูกดำเนินการเดียว แต่ไม่ใช่ทั้งสองอย่าง (A ^ B) จะให้ 49 ซึ่งเท่ากับ 0011 0001
~
Binary Ones Complement Operator เป็นเอกพจน์และมีผลของการ 'พลิก' บิต (~A ) จะให้ -61 ซึ่งเป็น 1100 0011 ในรูปแบบเสริมของ 2 เนื่องจากเลขฐานสองที่มีลายเซ็น .
<<
ตัวดำเนินการ Shift ซ้ายแบบไบนารี ค่าตัวถูกดำเนินการทางซ้ายจะถูกย้ายไปทางซ้ายตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา A <<2 จะให้ 240 ซึ่งเท่ากับ 1111 0000
>>
ตัวดำเนินการ Shift ขวาแบบไบนารี ค่าตัวถูกดำเนินการทางซ้ายจะเลื่อนไปทางขวาตามจำนวนบิตที่ระบุโดยตัวถูกดำเนินการทางขวา A>> 2 จะให้ 15 ซึ่งเท่ากับ 0000 1111


ตัวดำเนินการมอบหมาย


ตัวดำเนินการ
คำอธิบาย
=
ตัวดำเนินการกำหนดอย่างง่าย กำหนดค่าจากตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย C =A + B จะกำหนดค่าของ A + B ลงใน C
+=
ตัวดำเนินการเพิ่ม AND จะเพิ่มตัวถูกดำเนินการทางขวาให้กับตัวถูกดำเนินการทางซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C +=A เท่ากับ C =C + A
-=
ตัวดำเนินการลบ AND ลบตัวถูกดำเนินการทางขวาออกจากตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C -=A เทียบเท่ากับ C =C - A
*=
ตัวดำเนินการคูณและกำหนด มันคูณตัวถูกดำเนินการทางขวากับตัวถูกดำเนินการทางซ้าย และกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C *=A เทียบเท่ากับ C =C * A
/=
ตัวดำเนินการแบ่ง AND แบ่งตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวา และกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C /=A เท่ากับ C =C / A
%=
ตัวดำเนินการโมดูลัสและการกำหนด ใช้โมดูลัสโดยใช้ตัวถูกดำเนินการสองตัวและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการทางซ้าย C %=A เทียบเท่ากับ C =C % A
<<=
ตัวดำเนินการกะด้านซ้ายและการกำหนด C <<=2 เหมือนกับ C =C <<2
>>=
ตัวดำเนินการกะและกำหนดทางขวา C>>=2 เหมือนกับ C =C>> 2
&=
ตัวดำเนินการกำหนดระดับบิตและ C &=2 เหมือนกับ C =C &2
^=
Bitwise Exclusive OR และตัวดำเนินการการกำหนด C ^=2 เหมือนกับ C =C ^ 2
|=
ค่า OR ที่รวมระดับบิตและตัวดำเนินการกำหนด C |=2 เหมือนกับ C =C | 2

ตัวดำเนินการอื่นๆ


Sr.No
ตัวดำเนินการ
1 ขนาดของตัวดำเนินการ ส่งกลับขนาดของตัวแปร ตัวอย่างเช่น sizeof(a) โดยที่ 'a' เป็นจำนวนเต็ม และจะคืนค่า 4
2 ตัวดำเนินการแบบมีเงื่อนไข (?:) ถ้า Condition เป็นจริง มันจะคืนค่า X มิฉะนั้นจะคืนค่า Y
3 ตัวดำเนินการจุลภาค ทำให้มีการดำเนินการตามลำดับ ค่าของนิพจน์จุลภาคทั้งหมดคือค่าของนิพจน์สุดท้ายของรายการที่คั่นด้วยจุลภาค
4 (dot) and → (ลูกศร) ตัวดำเนินการสมาชิกใช้เพื่ออ้างอิงสมาชิกแต่ละรายของชั้นเรียน โครงสร้าง และสหภาพแรงงาน
5 () - ตัวดำเนินการแคสต์จะแปลงข้อมูลประเภทหนึ่งเป็นอีกประเภทหนึ่ง ตัวอย่างเช่น int(2.2000) จะคืนค่า 2
6 ตัวดำเนินการตัวชี้ &ส่งกลับที่อยู่ของตัวแปร ตัวอย่างเช่น &a; จะให้ที่อยู่ที่แท้จริงของตัวแปร
7 ตัวดำเนินการตัวชี้ * เป็นตัวชี้ไปยังตัวแปร ตัวอย่างเช่น *var; จะชี้ไปที่ตัวแปร var