1 / 13

More about Numerical Computation

Learn about numerical computation in C, including relational operators, bitwise operations, conditional expressions, type conversion, and more. Includes materials from "The C Programming Language" and "C: How to Program".

deborahe
Download Presentation

More about Numerical Computation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. More about Numerical Computation CS-2301 System Programming C-term 2009 (Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie and from C: How to Program, 5th and 6th editions, by Deitel and Deitel) More about Numerical Computation in C

  2. Reading Assignment • Chapter 2 of Kernighan & Ritchie More about Numerical Computation in C

  3. More Numerical Operators • Relational operators • <, <=, >, >=, ==, != • Return 0 if false, 1 if true • Let int a = 3; • Then a < 3 returns 0a >= 3 returns 1a == 3 returns 1a != 3 returns 0 More about Numerical Computation in C

  4. More Numerical Operators Relational operators are not special in C. They are just like any other operators in expressions • Relational operators • <, <=, >, >=, ==, != • Return 0 if false, 1 if true • Let int a = 3; • Then a < 3 returns 0a >= 3 returns 1a == 3 returns 1a != 3 returns 0 More about Numerical Computation in C

  5. Precedence of Relational Operators • Comparisons: lower than arithmetic operators • Equality-inequality: lower than comparisons • See Table 2-1, p.53 • Examples • i < lim - 1 means i < (lim – 1) • X + (y >= 3) returns the value X (when y < 3)and the value X+1 (when y >= 3) More about Numerical Computation in C

  6. Increment & Decrement Operators • ++x, --x, x++, x-- • Increments or decrements x by 1 • ++x – increments x, returns new value of x • x++ – increments x, returns old value of x • Used in many situations, especially for loops • --x – decrements x, returns new value of x • x-- – decrements x, returns old value of x • High precedence than *, /, % • Associates right to left More about Numerical Computation in C

  7. Bitwise Operations • & – bitwise AND • | – bitwise OR (inclusive) • ^ – bitwise exclusive OR • << – left shift • Same as multiplying by 2 (i.e., fills low-order bits with zeros) • >> – right shift • Machine dependent fill on left, depends upon sign bit • ~ – one’s complement • May only be applied to integral types • i.e., int, short, long, char • signed or unsigned More about Numerical Computation in C

  8. Conditional Expressions • expr1 ? expr2 : expr3 • Evaluate expr1. • If result is true, evaluate and return expr2 • Otherwise evaluate and return expr3 • Example, • z = (a < b) ? a : b • Assigns z the value of a if a < b, or b otherwise • See tricky code at end of §2.11 • For use in Programming Assignment #2 More about Numerical Computation in C

  9. Exceptions will become apparent later in the course Assignment Operator (yet again) • location += expression means • Add expression to the value at location and assign the result back into the same location • Similarly for-=, *=, /=, %=, ^=. |=, <<=, >>= • E.g., • x *= a is the same as x = x * a • y /= b is the same as y = y * b • z <<= 3 is the same as z = z << 3 More about Numerical Computation in C

  10. Type Conversion • May be automatic or explicit • See §2.7 • Automatic, for signed operands:– • If either is long double, convert other to long double • Else if either is double, convert other to double • Else if either is float, convert other to float • Otherwise, convert char and short to int and then if either is long, convert other to long • I.e., “promote” numerical types from lower to higher More about Numerical Computation in C

  11. Type Conversion (continued) • Automatic type conversion of unsigned integer values is • Tricky and • Machine dependent More about Numerical Computation in C

  12. Explicit Type Conversion • Definition – cast • A unary operator applied to an expression to explicitly force the value to a particular type • Represented as (type)expression • High precedence, equal to unary operators • Associates right-to-left • Example (int) sqrt(2*pi) • Converts the square root of 2π to an integer and truncates the fractional part (i.e., no rounding) More about Numerical Computation in C

  13. Questions? Read or review Chapter 2 More about Numerical Computation in C

More Related