c programming: arithmetic and logic operations · 2017. 4. 12. · c programming: arithmetic and...

48
C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati 1

Upload: others

Post on 30-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

C Programming: Arithmetic and Logic Operations

A. Sahu amd S. V .RaoDept of Comp. Sc. & Engg.Dept of Comp. Sc. & Engg.

Indian Institute of Technology Guwahati

1

Page 2: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Algebra: BEDMAS/PEDMAS Rule ( )(recap) 

• B‐E‐DM‐AS or P‐E‐DM‐AS/ k h ( )• B/P : Bracket  or  Parenthesis   (   )

– In C, only ( ) used for expression– Curly braces {}, and square bracket [] used for some other purpose.

• Again [] may involves in  expression as in the form of array access  

• E : Exponentiation• E : Exponentiation • DM: Division and Multiplication • AS : Addition and Subtraction 

2

Page 3: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

BEDMAS equivalent in C Arithmetic Operators Precedence RuleArithmetic Operators Precedence Rule 

(recap)Operator(s) Precedence & Associativity

( ) Evaluated first If nested( ) Evaluated first. If nested(embedded), innermost first.  

* / % Evaluated second If there are*   /   % Evaluated second.  If there areseveral, evaluated left to right.

E l t d thi d If th+   ‐ Evaluated third.  If there are  several, evaluated left to right.

l d l h l f= Evaluated last, right to left.   

Page 4: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Using Parentheses• Use parentheses to change the order in which an expression is evaluated.an expression is evaluated.a + b * c Would multiply b * c first,  

then add a to the result.t e add a to t e esu tIf you really want the sum of a and b to be multiplied by c, use parentheses to force the p y , pevaluation to be done in the order you want.

(a + b) * c(a + b) * c• Also use parentheses to clarify a complex expressionexpression.

Page 5: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice With Evaluating Expressions (recap)(recap)

Given integer variables a, b, c, d, and e, where a = 1 b = 2 c = 3 d = 4where a = 1, b = 2, c = 3, d = 4,evaluate the following expressions:

a + b - c + da * b / ca b / c1 + a * b % c

+ d % ba + d % b - ce = b = d + c / b - a

Page 6: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice With Evaluating Expressions(recap)(recap)

Given integer variables a, b, c, d, and e, where a = 1 b = 2 c = 3 d = 4where a = 1, b = 2, c = 3, d = 4,evaluate the following expressions:

a + b - c + d =3-3+4=0+4=4a * b / c = 2/3+4=0+4=4a b / c 2/3+4 0+4 41 + a * b % c =1+2%3=1+2=3

+ d % b 1+0 3 1 3 2a + d % b - c =1+0-3=1-3=-2e = b = d + c / b – a

Page 7: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Increment and Decrement OperatorsIncrement and Decrement Operators

• The increment operator ++The increment operator ++• The decrement operator ‐‐

d l h () b hi h h *• Precedence:  lower than (), but higher than *  /  and  %

• Associativity:  right to left• Increment and decrement operators can only p ybe applied to variables, not to constants or expressionsp

Page 8: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Increment OperatorIncrement Operator• If we want to add one to a variable, we can say:

count = count + 1 ;

• Programs often contain statements that increment variables, so to save on typing, C provides these shortcuts:

count++ ; OR      ++count ;Both do the same thing They change the valueBoth do the same thing.  They change the value of count by adding one to it.

Page 9: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Postincrement OperatorPostincrement Operator• The position of the ++ determines when the value is incremented If the ++ is after the variable then theincremented.  If the ++ is after the variable, then the incrementing is done last (a postincrement).

int amount count ;int amount, count ;

count = 3 ;amount = 2 * count++ ;amount 2 count++ ;

• amount gets the value of 2 * 3, which is 6, and then 1 gets added to countgets added to count.

• So, after executing the last line, amount is 6 and count is 4.is 4.

Page 10: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Preincrement OperatorPreincrement Operator• If the ++ is before the variable, then the incrementing is done first (a preincrement)is done first (a preincrement).

int amount, count ;

count = 3 ;amount = 2 * ++count ;

• 1 gets added to count first, then amount gets the value of 2 * 4 which is 8of 2   4, which is 8.

• So, after executing the last line, amount is 8 and count is 4.is 4.

Page 11: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

A Hand Trace Exampleint ans, val= 4 ;

Code Val  Ans4 garbage

val = value + 1 ;val++ ;val++ ;++val ;ans = 2 * val++ ;ans = ++val / 2 ;val-- ;--val ;ans = --val * 2 ;

/ 3ans = val-- / 3 ;

Page 12: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

A Hand Trace Exampleint ans, val= 4 ;

Code Val  Ans4 garbage

val = value + 1 ; 5val++ ; 6val++ ; 6 ++val ; 7 ans = 2 * val++ ; 8 14 ans = ++val / 2 ; 9 4val-- ; 8--val ; 7ans = --val * 2 ; 6 3

l / 3 5 1ans = val-- / 3 ; 5 1

Page 13: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

C Code : Previous Exampleint main(){int main(){int ans, val=4;val = val + 1 ;i tf(“ %d l %d\ ” l)printf(“ans=%d val=%d\n”,ans,val);

val++ ; ++val ;printf(“ans=%d val=%d\n”,ans,val); ans = 2 * val++ ; printf(“ans=%d val=%d\n”,ans,val);val--;--val;val ; val; printf(“ans=%d val=%d\n”,ans,val); ans=--val*2;printf(“ans %d val %d\n” ans val);printf(“ans=%d val=%d\n”,ans,val);ans = val-- / 3 ; printf(“ans=%d val=%d\n”,ans,val);return 0;}

Page 14: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

PracticePractice

GivenGivenint a = 1, b = 2, c = 3 ;

What is the value of this expression?

++a * b - c--

What are the new values of a, b, and c?

Page 15: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

PracticePractice

GivenGivenint a = 1, b = 2, c = 3 ;

What is the value of this expression?

++a * b - c--

=1What are the new values of a, b, and c?

a 2 c 2a =2   c=2

Page 16: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

More PracticeMore Practice

GivenGivenint a =1, b =2, c =3, d =4 ;

What is the value of this expression?

++b / c + a * d++

What are the new values of a, b, c, and d?

Page 17: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

More PracticeMore Practice

GivenGivenint a =1, b =2, c =3, d =4 ;

What is the value of this expression?

++b / c + a * d++

= 1+4 =5What are the new values of a, b, c, and d?a 1 b 3 c 3 d 5a=1, b=3,c=3,d=5

Page 18: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Assignment Operators

= += ‐= *= /= %=S E i l SStatement Equivalent Statementa = a+2 ; a += 2 ;a = a-3 ; a -= 3 ;a = a*2 ; a *= 2 ;a = a/4 ; a /= 4 ;a = a%2 ; a %= 2 ;; ;b = b+(c+2); b += c + 2 ;d =d*(e-5); d *= e - 5 ;d =d (e 5); d = e 5 ;

Page 19: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice with Assignment OperatorsPractice with Assignment Operatorsint i = 1, j = 2, k = 3, m = 4 ;

Expression Valuepi += j + k

j *= k = m + 5

k -= m /= j * 2

Page 20: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice with Assignment OperatorsPractice with Assignment Operatorsint i = 1, j = 2, k = 3, m = 4 ;

Expression Valuepi += j + k i=6

j *= k = m + 5 k=9, j=18

k -= m /= j * 2 m=1, k=2

Page 21: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Relational Expressions and EvaluationEvaluation 

21

Page 22: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Relational OperatorsOperator Meaning

< Less than> Greater than<= less than or equal to>= greater than or equal to== is equal to

Relational expressions evaluate to the integer

q!= is not equal to

Relational expressions evaluate to the integer values 1 (true) or 0 (false).

All of these operators are called binary operatorsbecause they take two expressions as operands.

Page 23: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice with Relational ExpressionsPractice with Relational Expressions

int a = 1, b = 2, c = 3 ;int a 1, b 2, c 3 ;

Expression Value Expression Valuea < c (a + b)>= cb <= c (a + b)== cb < c (a + b) cc <= a a != b

> b ( + b)!a > b (a + b)!= cb >= c

Page 24: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice with Relational ExpressionsPractice with Relational Expressions

int a = 1, b = 2, c = 3 ;int a 1, b 2, c 3 ;

Expression Value Expression Valuea < c T (a + b)>= c Tb <= c T (a + b)== c Tb < c T (a + b) c Tc <= a F a != b T

> b F ( + b)! Fa > b F (a + b)!= c Fb >= c F

Page 25: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Arithmetic Expressions: True or Falsep

• Arithmetic expressions evaluate to numericArithmetic expressions evaluate to numeric values.

• An arithmetic expression that has a value of zero is falsezero is false.

• An arithmetic expression that has a valueAn arithmetic expression that has a value other than zero is true. 

Page 26: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice with Arithmetic ExpressionsPractice with Arithmetic Expressionsint a = 1, b = 2, c = 3 ;float x = 3.33, y = 6.66 ;

Expression Numeric Value True/Falsep /a + bb-2*ab-2*ac– b–ac–ac ay–xy-2*xy 2 x

Page 27: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Practice with Arithmetic ExpressionsPractice with Arithmetic Expressionsint a = 1, b = 2, c = 3 ;float x = 3.33, y = 6.66 ;

Expression Numeric Value True/Falsep /a + b 3 Tb-2*a 0 Fb-2*a 0 Fc– b–a 0 Fc–a 2 Tc a 2 Ty–x 3.33 Ty-2*x 0.0 Fy 2 x 0.0 F

Page 28: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Structured Programming• All programs can be written in terms of only three control structures– Sequence, selection and repetition

• The sequence structure – Unless otherwise directed, the statements are executed in the order in which they are written. 

Th l i• The selection structure – Used to choose among alternative courses of actionaction. 

• The repetition structure– Allows an action to be repeated while someAllows an action to be repeated while some condition remains true.

Page 29: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Selection:  the if statementif ( condition ){

statement(s) /* body of the if statement */

}

The braces are not required if the body contains only a single statementsingle statement.  

However, they are a good idea and are required by the d d dC Coding Standards.

Page 30: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Examplesif ( age >= 18 )

{

printf(“Vote!\n”) ;

}if ( value == 0 )if ( value 0 ){printf(“You entered a zero.\n”) ;printf (“Please try again.\n”) ;

}

Page 31: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Good Programming PracticeGood Programming Practice• Always place braces around the body of an if statement.

• Advantages:– Easier to read– Will not forget to add the braces if you go back and add a second statement to the body

– Less likely to make a semantic error

• Indent the body of the if statement 3 to 4 spaces ‐‐ be consistent!p

Page 32: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Selection: the if‐else statementSelection:  the if else statementif ( condition ){

statement(s)/*if clause */statement(s)/ if clause /}lelse

{statement(s) /*else clause */

}}

Page 33: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Exampleif ( age >= 18 )

{{

printf(“Vote!\n”) ;

}

elseelse

{

printf(“Maybe next time!\n”) ;

}}

Page 34: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Good Programming Practice• Always place braces around the bodies of the if and else clauses of an if‐else statement.and else clauses of an if else statement.

• Advantages:Easier to read– Easier to read

– Will not forget to add the braces if you go back and add a second statement to the clauseadd a second statement to the clause

– Less likely to make a semantic error

I d t th b di f th if d l l 3 t• Indent the bodies of the if and else clauses 3 to 5 spaces ‐‐ be consistent!

Page 35: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Nesting of if‐else Statementsgif ( condition1 ){

statement(s)}else if ( condition2 )else if ( condition2 ) {

statement(s)}}. . . /* more else clauses may be here */else{{

statement(s) /* the default case */}

Page 36: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Good Example : 2 if 2 elseGood Example : 2 if 2 elseif ( value == 0 ){{

printf(“Value you entered was 0\n”);}else if ( value < 0 ) {

printf(“%d is negative.\n”, value) ;p t ( %d s egat e.\ , a ue) ;}else{{

printf(“%d is positive.\n”, value) ;}

Page 37: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Bad Example : 2 if 1 elseif ( n > 0 )

if ( a > b )az=a;

else z=b;

if ( n > 0 ){if (a> b)

if ( n > 0 )if ( a > b )

; if (a> b)z=a;

}elseif ( a > b )

z=a;else

else z=b;

z=b;

Indentation will not ensure result : elsematch with closest if Code of Red box behaves like Code of Green box 

Page 38: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Gotcha!   =  versus  ==  int a = 2 ;if ( a = 1 )/* semantic(logic) Err! */( )/ ( g ) /{

printf (“a is one\n”) ;printf ( a is one\n ) ;}else if (a == 2 )else if (a == 2 ){

printf (“a is two\n”) ;printf ( a is two\n ) ;} else {

i tf (“ i %d\ ” )printf (“a is %d\n”, a) ;}

Page 39: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Gotcha  ..• The statement   if (a = 1)   is syntactically correct, so no error message will be produced.  (Some compilers g p ( pwill produce a warning.)  However, a semantic (logic) error will occur.

h l h l• An assignment expression has a value ‐‐ the value being assigned.  In this case the value being assigned is 1, which is true.is 1, which is true.

• If the value being assigned was 0, then the expression would evaluate to 0, which is false.

• This is a VERY common error.  So, if your if‐else structure always executes the same, look for this typographical errortypographical error.

Page 40: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Logical Operators• So far we have seen only simple conditions.

if ( count > 10 ) . . .

• Sometimes we need to test multiple conditions in order to make a decisionorder to make a decision.

• Logical operators are used for combining simple conditions to make complex conditions.conditions to make complex conditions.

&&     is AND if ( x > 5  &&  y < 6 )

||        is OR if ( z == 0  ||  x > 10 )

! is NOT if (! (bob > 42) )!         is NOT if (! (bob > 42) )

Page 41: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Example Use of &&Example Use of &&

if ( age < 1 && gender == ‘m’){{

printf (“Infant boy\n”) ;}

Page 42: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Truth Table for &&Truth Table for &&

Expression Expression Expression && ExpressionExpression1 Expression2 Expression1 && Expression2

0 0 00                     0                                    0

0                nonzero                             0

nonzero                0                                   0

nonzero           nonzero 1

Exp1 && Exp2 && … && Expn will evaluate to 1 (true) onlyExp1 && Exp2 && … && Expn will evaluate to 1 (true) only if ALL subconditions are true.

Page 43: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Example Use of ||Example Use of ||

if (grade==‘E’ || grade==‘F’){{printf(“See you next semester!\n”) ;}}

Page 44: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Truth Table for ||Truth Table for ||

Expression Expression Expression || ExpressionExpression1 Expression2 Expression1 || Expression2

0 0 00                     0                                    0

0                nonzero                              1

nonzero                0                                    1

nonzero           nonzero 1

Exp1 && Exp2 && … && Expn will evaluate to 1 (true) ifExp1 && Exp2 && … && Expn will evaluate to 1 (true) if only ONE subcondition is true.

Page 45: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Example Use of !Example Use of !

if (!( 2)) /* S ( ! 2) */if (!(x==2)) /* Same as (x!=2) */

{{

printf(“x is not equal to 2”) ;

}

Page 46: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Truth Table for !Truth Table for !

Expression ! ExpressionExpression ! Expression

0 10                                          1

nonzero                                    0

Page 47: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Operator Precedence and AssociativityOperator Precedence and AssociativityPrecedence Associativity

/( ) left to right/inside‐out++  ‐‐ ! + (unary)  ‐ (unary)  (type)   right to left* / % left to right*   /   % left to right+ (addition)  ‐ (subtraction) left to right< <= > >= left ot right          left ot right==  != left to right&& left to right|| left to right=  +=  ‐=  *= /=  %= right to left, (comma) right to left

Page 48: C Programming: Arithmetic and Logic Operations · 2017. 4. 12. · C Programming: Arithmetic and Logic Operations A. Sahu amd S. V .Rao Dept of Comp. Sc. & Engg. Indian Institute

Thanks

48