1 / 18

CSCI 125 & 161 / ENGR 144 Lecture 5

CSCI 125 & 161 / ENGR 144 Lecture 5. Martin van Bommel. 16-bit Memory Word. To store number 6, use 0000000000000110 Value 0 is 0000000000000000 Largest value is 1111111111111111 = 65,535 = 2 16 − 1 32-bit word gives largest value > 4 billion. Storing Negative Values. Sign Magnitude

jeanettef
Download Presentation

CSCI 125 & 161 / ENGR 144 Lecture 5

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. CSCI 125 & 161 / ENGR 144 Lecture 5 Martin van Bommel

  2. 16-bit Memory Word • To store number 6, use 0000000000000110 • Value 0 is 0000000000000000 • Largest value is 1111111111111111 = 65,535 = 216− 1 • 32-bit word gives largest value > 4 billion

  3. Storing Negative Values • Sign Magnitude • use first bit as sign bit, 0 = positive 1 = negative • e.g. 8-bits 00000000 = 0 10000000 = −0 00000001 = 1 10000001 = −1 … … 01111111 = 127 11111111 = −127

  4. Two’s Complement • Two’s complement • if positive, use binary • if negative, complement bits and add one • e.g. −53 magnitude 00110101 complement 11001010 add 1 11001011

  5. 8-bit Two’s Complement 00000000 = 0 00000001 = 1 11111111 = −1 00000010 = 2 11111110 = −2 … … 01111111 = 127 10000001 = −127 10000000 = −128

  6. Two’s Complement Addition • Add −1 + 2? −1 11111111 +2 00000010 ---- ------------ +1 00000001

  7. 16-bit Two’s Complement • 8-bit two’s complement range is− 27 = − 128 to 27 − 1 = 127 • 16-bit two’s complement range is− 215 = −32,768 to 215− 1 = 32,767 • 32-bit two’s complement range is − 231 ≈ −2 million to 231− 1 ≈ 2 million

  8. Data Types • Two properties • set of values (domain) • set of operations • int - 32-bit two’s complement integers-2 147 483 648 to 2 147 483 647 +, -, *, /, %

  9. Floating-point Data • Numbers that include fractional parts • float - 32-bit floating point representation • approximately seven decimal digits of accuracy • double - 64-bit floating point representation • approximately sixteen decimal digits of accuracy +, -, *, /

  10. Character Data • char - Elements from the ASCII table • Values expressed in single quotes e.g. ’A’ ’?’ ’\n’ • stored in memory as their ASCII value +, -

  11. Expressions • A sequence of terms and operators • Term - represents single data value • constant - data value as part of program, e.g. 4 • variable - name as placeholder for memory • function call - one that generates a value e.g. sqrt(9) • expression in parenthesis • Operator - character indicating computation

  12. Constants • Explicit values that never change • Integer constants - sequence of digits • e.g. 1000; 5; 1 not 1,000; 3.14 • Floating-point constant - includes decimal • e.g. 3.14; 1.0; 2.9E+8 • String constant - characters in double quotes • e.g. “Hello, world.\n”

  13. Variables • Placeholder for value in memory • name - alias for memory location • value - current value stored in location • type - kind of data values that may be stored name value

  14. Variable Names • Must start with letter or underscore ( _ ) followed by letters, digits, or underscores • Case of letters significant • Name not a C++ keyword • Name any length, but only 31 characters significant (safe only up to 8 characters)

  15. Operators and Operands • expression operator expression • e.g. (2 * x) + (3 * y) • expressions are operands - values to which operator is applied • operator signifies operation • binary operators - two operands e.g. a + b • unary operators - one operand e.g. - b

  16. Combining Integers and Floats • Result of expression is most specific type • e.g. Value of 2.5 + 3 is 5.5 • type of expression n + 1 is type of n • type of expression n + 1.5 is float if n is float or int, but double if n is double

  17. Integer Division and Remainder • Division of int’s results in int • Remainder operator % gives remainder • e.g. 5 / 2 is 2 5 % 2 is 1 • 5 / 2.0 is 2.5 0 % 4 is 0 • 5.0 / 2 is 2.5 1 % 4 is 1 • 5.0 / 2.0 is 2.5 4 % 4 is 0

  18. Precedence Rules • Parenthesized expressions first • Unary minus operator next • *, /, and % next, from left to right • + and - next, from left to right • e.g. 8 * (7 - 6 + 5) % (4 + 3 / 2) - 1

More Related