3: math - university of california, san...

37
ECE15: Introduction to Computer Programming Using the C Language 3: Math A. Orlitsky and A. Vardy, based in part on slides by S. Arzi, G. Ruckenstein, E. Avior, S. Asmir, and M. Elad

Upload: others

Post on 28-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

ECE15: Introduction to Computer Programming Using the C Language

3: Math

A. Orlitsky and A. Vardy, based in part on slides by S. Arzi, G. Ruckenstein, E. Avior, S. Asmir, and M. Elad

Page 2: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline

❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language2

Page 3: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 3

❖ Arithmetic and logic

+ - * / % && || !

Page 4: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Arithmetic Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 4

Expression Value

1+2 3

1-2 -1

2*(-3) -6

1.0/2.0 0.5

1.0/0.0 inf

-1.0/0.0 -inf

0.0/0.0 nan

1/2 0

Four basic: addition +, subtraction -, multiplication *, division /

+,-,* of all numbers, and / of reals work as expected

/ of integers yields an integer - needs definition

“not a number”

Page 5: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Integer Division

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 5

❖ a,b - integers, a/b is also an integer ❖ Round toward 0 (truncation) of actual ratio

fraction actual value

after trancation

3/2 1 1/2 1

8/3 2 2/3 2

15/4 3 3/4 3

4/5 4/5 0

3/-2 -1 1/2 -1-8/3 -2 2/3 -2-15/-4 3 3/4 3-4/5 -4/5 0

❖ Division by 0 - error

as + but with appropriate sign

{Positive

{Negative

Page 6: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Modulo

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language

6

❖ a, b - integers, a modulo (or mod) b, written a%b, is the remainder when a is divided by b

❖ What if a or b is negative?(a/b)*b + a%b = a

3%2 1

4%2 0

8%3 2

5%7 5

12.0%5.0 Error

Divide a marbles equally among b kids Each gets: You have left:

a b a/b (a/b)*b a%b (a/b)*b+a%b

13 4 3 12 1 13

13 -4 -3 12 1 13

-13 4 -3 -12 -1 -13

-13 -4 3 -12 -1 -13

As if both + Sign as a

❖ Always:

❖ Mod 0 - error

Remains for negatives!

a/ba%b

operations.c

Page 7: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline

❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language

Page 8: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline

❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 8

Page 9: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Expressions

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 9

❖ Constant, variable, or their valid combination using operators

❖ Every expression has a value and a type

‘a’ 77 x 3 + y % z

‘77’ 3a for 3 +/ y

✘ü

Page 10: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Value

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 10

Expression Value Comments1+2*3 7 Multiplication precedes addition

(1+2)*3 9 Parentheses alter evaluation order1-2+3 2 Additions/subtractions evaluated left to right

1-(2+3) -4 Parentheses alter evaluation order1.0/2.0*3.0 1.5 Multiplications/divisions evaluated left to right

1/2*3 0 1/2 evaluated to 0 4%2*3 0 Same priority, evaluated left to right

❖ Determined by the operations, performed sequentially ❖ Need to define operation order

Page 11: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Type

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 11

❖ Arithmetic operations on same type operands result in same type ❖ Arithmetic operations on different types convert, or promote,

operands to the higher type according to

❖ Only exception to above rules is that result is always at least int

char ➜ short ➜ int ➜ long ➜ float ➜ double

2 / 4.0 2.0 / 4.0 0.5

Page 12: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Examples

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 12

Expression Typec + c int

c + s int

c – s/i int

l*2.0 – i double

l + 3 long

c + 5.0 double

i/l * 2.0 double

f*7 – i float

d + c double

f*d – l double

Declarationschar c; double d; float f; int i; long l; short s;

Both operands promoted to

int

Recall: char<short<int<long< float< double Arithmetic expressions have type at least int

i/l performs integer division

Page 13: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Assignment Expressions❖ Expression

❖ Assignment expression: Variable = expression;

❖ Evaluates expression on right, stores result in variable on left

❖ Like standard expressions (x + y), assignment expressions (x = x+1;) also have a value -- the assignment to the left-hand side

❖ Allows chain assignments:

❖ For that reason (!), assignment expressions evaluated right-to-left

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 13

x = y; x = x+1; circumference = 2 * pi * r;

➧a = b = c = 0 a = b = (c = 0) a = b = 0 a = (b = 0) a = 0 ➧➧➧

x = (y = 3);

x = y = 3;

c=0 b=0 a=0Or:

x x+1 2*pi*r

Unlike simple expressions

hence can write:

y=3 x = 3;➧ x=3➧ ➧

Page 14: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Value mismatch

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 14

❖ What if expression type (on right) differs from variable type (on left)?

❖ Type conversion: expression (right) converted to the variable type (left)

❖ If larger type converted to smaller (double ➜ int)

int x; int y = 4; double z;

double 14.4

x = y * 3.6;

int 14

int 0

z = y / 5;

double -0.8

x = y / -5.0;

int 0 double 0.0

conversion to int always

truncates

information may be lost!

Page 15: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 15

Page 16: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 16

Page 17: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Type Casting❖ Often need explicit type conversion - e.g. roundoff, 2/3

❖ Casting operator (type) expr, converts expr to type

❖ Unary operator

❖ Has highest precedence in sequence of operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 17

int i = 1, j = 2; double x, y = 3.14;

x = i / j; x = (double)i / j; x = i / (double)j; x = (double)(i / j);

x = (int) y;

0.0 0.5 0.5 0.0

3.0

Value of x

(double) 2 2.0 double

(int) 2.8 2

(int) -0.9 0

Page 18: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Roundoff

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language

❖ (int) rounds toward 0 (truncates)

❖ How to round to nearest integer?

❖ If just want to print

❖ If want to store?

❖ Solution (for positive numbers):

❖ Negative numbers, round-up, and 2.5 → 2 -- later

18

➧(int) 2.99 2

➧2.9 3

➧2.4 2

➧2.5 3

(int) (x+.5)

➧(int) (2.9+.5) 3

➧ 2

➧ 3

(int) (2.4+.5)

(int) (2.5+.5)

(int) (3.4)

(int) (2.9)

(int) (3.0)

üüü

printf("%.0f",x);

Page 19: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Fahrenheit and Celsius

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language

❖ Daniel Gabriel Fahrenheit (1686 - 1736)

‣Set brine fr=0, water fr=32 → body tm=96, water bl=205

‣Later: if brine freezes 0 water 32, body ~98.6 (&varies)

‣ Kept water freeze 32, fixed water boil: 212

❖ Andres Celsius (1701 - 1744) ‣Water freeze: 0, water boil: 100

❖ Countries using Celsius: ‣Germany, France, Russia, China, Vietnam, Egypt..

❖ Countries using Fahrenheit: ‣USA

19

body temp - brine freeze -------------------------------------------------------- water freeze - brine freeze ~ 3 96 -----

32=

, Jamaica, Belize !

Difference 180

32=25

Page 20: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 20

COLD

WARM

“HOT” “COOL”

Page 21: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Fahrenheit to Celsius Conversion

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 21

TF,TC — temperature FF,FC — freezing temp of water BF,BC — boiling temp of water

℃100

908070605040302010

0-10-20-40

℉212

200180160140

100120

80604020

0-20

32

TC

TF FF (32) BF (212) FC

(100) BC

TF Fahrenheit

TC Celsius

(0)

BC − FC ───── BF − FF

+ FC= TC * (TF − FF)100− 0 ───── 212 − 32= + 0* (TF − 32)

=slope BC − FC ───── BF − FF

=TC − FC ───── TF − FF

=5 ─ 9 * (TF − 32)

5 ─ 9= TC ×(TF − 32)

Page 22: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

F 2 C n C

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 22

#include <stdio.h>

int main() { int frizCel = 0, frizFahr = 32; int boilCel = 100, boilFahr = 212;

double tempCel, tempFahr; printf("Fahrenheit: "); scanf("%lf", &tempFahr);

tempCel = (boilCel - frizCel)/(boilFahr - frizFahr) *(tempFahr - frizFahr) + frizCel;

printf("%.1f deg F = %.1f deg C\n", tempFahr, tempCel);

return 0; }

Bug! Integer division truncates to 0!

temp1

BC − FC ───── BF − FF

+ FC= TC * (TF − FF)

Page 23: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Correction 1

#include <stdio.h>

int main() { double frizCel = 0., frizFahr = 32.; double boilCel = 100., boilFahr = 212.;

double tempCel, tempFahr; printf("Fahrenheit: "); scanf("%lf", &tempFahr);

tempCel = (boilCel - frizCel)/(boilFahr - frizFahr) *(tempFahr - frizFahr) + frizCel;

printf("%.1f deg F = %.1f deg C\n", tempFahr, tempCel);

return 0; }

temp2BC − FC ───── BF − FF

+ FC= TC * (TF − FF)

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 23

Using doubles

Page 24: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Correction 2

#include <stdio.h>

int main() { int frizCel = 0, frizFahr = 32; int boilCel = 100, boilFahr = 212;

double tempCel, tempFahr; printf("Fahrenheit: "); scanf("%lf", &tempFahr);

tempCel = (double)(boilCel - frizCel)/(boilFahr - frizFahr) *(tempFahr - frizFahr) + frizCel;

printf("%.1f deg F = %.1f deg C\n", tempFahr, tempCel);

return 0; }

temp3BC − FC ───── BF − FF

+ FC= TC * (TF − FF)

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 24

Type casting

Page 25: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Abbreviations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 25

❖ Often, need expressions like x = x + y

❖ Shorthand: x += y

❖ Works for all arithmetic operations:

❖ Also works on logic operations (&&, ||) - soon

x = x+y x += y

x = x-3 x -= 3

x = x*x x *= x

x = x/5.3 x /= 5.3

x = x%4 x %= 4

Page 26: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Unary Increment and Decrement

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 26

❖ Increasing or decreasing a variable by 1 very common

❖ Even shorter shorthandx++

++x

x--

--x

x += 1

x -= 1

x = x + 1

x = x - 1

x = 5; y = ++x; z = x++;

5 6 7

? 6 6

? ? 6

x y z

❖ Why both x++ and ++x? x++ increments x after expression evaluated

++x increments x before expression evaluated

Examplef(x++); f(x); x++;

f(++x); ++x; f(x);increment.c

Page 27: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Precedence and Associativity Table

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 27

Example: Suppose that the value of z is 6. Then...

Operation Notation Associativity

Parentheses ( ) left to right

Unary Operations ++ -- + - right to left

Multiplication and Division * / % left to right

Addition and Subtraction + - left to right

Assignment Operations = += -= *= /= %= right to left

36

30 10

14

1414

x = y = 4 + z++ * 5 / (2 + 1)Z ← 7

Increasing precedence

z++

possible warning, best avoid

precedence.c

++z←

x,y ← 15

z * z++ ++z * z++

Page 28: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language28

Page 29: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Outline❖ Operations

❖ Expressions

❖ More Arithmetic Operations

❖ Logical Operations

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language29

Page 30: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Logical Operators❖ Three logical operators: NOT, AND, OR

❖ Defined via truth tables to reflect normal meaning of NOT, AND, OR

❖ Operators can be combined to construct complex expressions

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 30

Operation Notation

AND &&

OR ||

NOT !

AND OR NOT

exp1 exp2 exp1 && exp2 exp1 || exp2 !exp1

F F F F T

F T F T T

T F F T F

T T T T F

Page 31: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Logical Expressions

❖ Operators combined to construct complex expressions: ❖ Evaluated left to right

❖ && before ||

❖ Parentheses modifies

❖ Unary ! before &&

❖ Evaluation stops when value determined

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 31

T || (T && !T)

F && T && T

Any logic statement (propositional formula) can be written in terms of AND, OR, and NOT

T || T && F

(T || T) && F

T || !F && F

(F && T) && T

T || (T && F)

AND OR NOT

exp1 exp2 exp1 && exp2 exp1 || exp2 !exp1

F F F F T

F T F T T

T F F T F

T T T T F

F && T F

T || F T

T && F F

T || (!F) && F T || T && F

➧ ➧ ➧

➧ ➧ ➧

➧ ➧

➧ ➧

Not evaluated

Page 32: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Boolean Values

Lecture 2 ECE15: Introduction to Computer Programming Using the C Language

❖ Type _Bool specifies a Boolean (0/1) variable ‣0 - false ‣1 - true

❖ <stdbool.h> library (header file) defines

‣bool - _Bool

‣false - 0 ‣true - 1

❖ Still Occupies 1 byte of memory

32

#include <stdio.h>

int main() { _Bool a=0, b=1;

printf("a=%d b=%d a&&b=%d a||b=%d\n", a, b, a&&b, a||b); return 0; }

bool.c

#include <stdio.h> #include <stdbool.h>

int main() { bool a=false, b=true;

printf("a=%d b=%d a&&b=%d a||b=%d\n", a, b, a&&b, a||b); return 0; }

stdbool.c

Page 33: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Logical Values of Numbers

nonzero ⇒ Truezero ⇒ False

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 33

❖ Every number has a logical value:

ExpressionNumerical

valueLogical Value

a 3 Truea + b 0 Falsea += b 0 Falsea = 2*c 2 True

b + 3*c 0.0 False

b && c 1 True

int a = 3; int b = -3; double c = 1.0;

❖ Useful in conditionals (next lecture): if(expression){...} else {...}

Example

Zero values of all types (0, 0.0, ‘\0’ ) are False

True represented as 1

Page 34: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Evaluated left-to-right

❖ 2 operators for testing equality (or inequality)

❖ 4 operators for testing relations (greater, smaller)

❖ value 1(true) if condition holds 0 (false) if conidtion does not hold

❖ To check a < b < c :

Relational Operators

Note = assignment

== test equality

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 34

Expression Numerical Value

Logical Value

d = c 3 Truec = a 0 Falsea == b 0 Falsea != b 1 Trueb <= 8 1 True

0 < 4 < 3 1 True0 < .5 < 1 0 False

int a = 0, b = 5, c = 3, d = 2;

== !=

< <= > >=

a < b && b < c

Page 35: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

❖ Unlike arithmetic, value is often decided from part of expression

❖ Evaluation stops when logical value can be determined

Use in Program

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 35

if (age <= 90) && (GPA > 3.5 || income >= 1000000) plan_wedding = true;

Example

if (a/b > 1) a++; /* What happens if b is zero? */

if ((b != 0) && (a/b > 1)) a++; /* Will never crash! */û ü

If age > 90 nothing else evaluated

If age <=90 and GPA>3.5 income not checked

Page 36: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Precedence and Associativity Table

Lecture 3 ECE15: Introduction to Computer Programming Using the C Language 36

Operation Notation Associativity

Parentheses ( ) left to right

Unary Operations++ -- - +

right to left

Multiplication and Division * / % left to right

Addition and Subtraction + - left to right

Relational Operators < <= > >= left to right

Equality Operators == != left to right

Logical AND && left to right

Logical OR || left to right

Assignment Operations = += -= *= /= %= right to left

! (type) sizeof

Hig

hest

pre

cede

nce

❖ ! is unary with same high precedence as other unary operators ❖ Relational (<) and equality (==) operators after +,- ❖ && and || follow

Page 37: 3: Math - University of California, San Diegoeceweb.ucsd.edu/courses/ECE15/FA_2015/lectures/lecture3.pdfFahrenheit and Celsius Lecture 3 ECE15: Introduction to Computer Programming

Where we are

Lecture 2 ECE15: Introduction to Computer Programming Using the C Language 37