# Bitwise, Precedence and Special Operator – Object Oriented Programming (OOP)

## Bitwise, Precedence and Special Operator Object Oriented Programming (OOP) Third Semester | Second year BSc.CSIT | Tribhuvan University (TU)

Bitwise Operator
In C++ programming language, bitwise operators are used to modify the bits of the binary pattern of the variables. Table below gives use of some bitwise operators:

Table: Use of Bitwise Operator

 Operator Asm equivalent Description & AND Bitwise AND | OR Bitwise Inclusive OR ^ XOR Bitwise Exclusive OR ~ NOT Unary complement (bit inversion) << SHL Shift Left >> SHR Shift Right

Precedence of Operators
In case of several operators in an expression, we may have some doubt about which operand is evaluated first and which later. For example, let us take following expression:
a = 5 + 7 % 2
Here we may doubt if it really means:
a = 5 + (7 % 2)             // with a result of 6
a = (5 + 7) % 2            // with a result of 0
The correct answer is the first of the two expressions, with a result of 6. Precedence order of some operations in C++ programming language is given in the table below;

Table: Precedence of operators in descending order

 Level of Precedence Operator Description Grouping 1 :: scope Left to right 2 () [] . -> ++ — dynamic_cast static_cast reinterpret_cast const_cast typeid postfix Left to right 3 ++   —   ~   ! size of new delete unary (prefix) Right to left *   & indirection and reference (pointers) +   – unary sign operator 4 (type) type casting Right to left 5 . * ->* pointer to member Left to right 6 * / % multiplicative Left to right 7 + – additive Left to right 8 <<    >> shift Left to right 9 <  >  <=   >= relational Left to right 10 ==   != equality Left to right 11 & bitwise AND Left to right 12 ^ bitwise XOR Left to right 13 | bitwise OR Left to right 14 && logical AND Left to right 15 || logical OR Left to right 16 ?: conditional Right to left 17 =   *=   /=   %=   +=  _=  >>=    <<=    &=   ^=    |= assignment Right to left 18 , comma Left to right

Grouping defines the precedence order in which operators are evaluated in the case that there are several operators of the same level in an expression. Thus if you want to write complicated expressions and you are not completely sure of the precedence levels, always include parentheses. It will also make your code easier to read.

Special Operators
Apart from the above operators that we have discussed above so far, C++ programming languages supports some special operators. Some of them are: increment and decrement operator, size of operator, comma operator etc.

• Increment and Decrement Operator
In C++ programming language, Increment and decrement operators can be used in two ways: they may either precede or follow the operand. The prefix version before the operand and postfix version comes after the operand. The two versions have the same effect on the operand, but they differ when they are applied in an expression. The prefix increment operator follows “change then use” rule and post fix operator follows “use then change” rule.
• The size of operator
We know that different types of variables, constant, etc require different amount of memory to store them. The size of operator can be used to find how many bytes are required for an object to store in memory. For example:
sizeof(char) returns 1
sizeof(int) returns 2
sizeof(float) returns 4
If k is integer variable, the sizeof(k) returns 2.The sizeof operator determines the amount of memory required for an object at compile time rather than at a run time.
• The comma operator
The comma operator gives left to right evaluation of expressions. It enables to put more than one expression separated by comma on a single line. For example:
int i = 20, j = 25;
In the above statements, comma is used as a operator between the two statements.
(Visited 136 times, 1 visits today)

Posted By : | Comment RSS | Category : Third Semester
Subscribe Notes