1 / 28

Types

Types. Chapter 2. Objectives. Observe types provided by C++ Literals of these types Explain syntax rules for identifier names Study variables and constants What they are How they differ How to declare How to use Investigate internal representations

latham
Download Presentation

Types

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. Types Chapter 2

  2. Objectives • Observe types provided by C++ • Literals of these types • Explain syntax rules for identifier names • Study variables and constants • What they are • How they differ • How to declare • How to use • Investigate internal representations • First look at class attribute variables C++ An Introduction to Computing, 3rd ed.

  3. Types and Declarations Fundamental Types • Integers (whole numbers, negatives) • int • Integer variations • short, long, unsigned • Reals (fractional numbers) • float, double, long double • Characters (letters, digits, symbols, punctuation) • char • Booleans (logical values, true and false) • bool C++ An Introduction to Computing, 3rd ed.

  4. Integer • Memory used for an int depends on word size used by the hardware • Usually 16, 32, or 64 bits used • 16 Bits (2 bytes) – shortint • Range -32768 … 32767 • 32bits (4 bytes) – longint (or long) • Range -2137483648 … 2137483647 (maybe 64) One bit used for the sign C++ An Introduction to Computing, 3rd ed.

  5. Integer • Integers can be specified as unsigned • Then the sign bit not needed • Gives larger positive range • unsigned short (16 bits) • Range 0 … 65535 • unsigned long (32 bits) • Range 0 … 4294967295 C++ An Introduction to Computing, 3rd ed.

  6. Integer Literals • Decimal integers • Sequence of digits without a decimal point • Octal integers • Sequence of digits beginning with a 0 • Base 8 • Hexadecimal integers • Sequence of digits beginning with an X • Base 16 C++ An Introduction to Computing, 3rd ed.

  7. Reals • float • Usually a 32-bit value (4 bytes) • double • A 64-bit value (8 bytes) • long double • A 96- or 128-bit value The programmer should choose which type based on degree of precision desired for the object C++ An Introduction to Computing, 3rd ed.

  8. Reals • Values are stored internally in scientific notation (base 2) • A sign for the number • Significant digits of the number • The power of 10 • Sign for the power C++ An Introduction to Computing, 3rd ed.

  9. Reals • Literal values (real Literals are treated as double) • A sequence of digits with leading sign, containing a decimal point • Scientific notation – any one of the following forms 0.12e11 1.2E10 12.0E9 12.e9 12E9 C++ An Introduction to Computing, 3rd ed.

  10. Characters • char type • Represents individual characters • See ASCII character set in Appendix A • Characters represented in memory by numeric values • Character literals • Characters enclosed in single quotes'X' '7' '>' 'e' C++ An Introduction to Computing, 3rd ed.

  11. Characters • Escape characters • A backslash \ combined with another character hold special meaning C++ An Introduction to Computing, 3rd ed.

  12. Strings • Need #include <string>; using namespace std; • A sequence of characters • Enclosed in double quotes"Hi Mom” • Can include escape characters"\nThe answer is " • Warning • "A" is a string literal • 'A' is a character literal C++ An Introduction to Computing, 3rd ed.

  13. Identifiers • Names given to software objects • Rules: • Must not be C++ keywords (see Appdx B)int, if, while, … • Must start with a letter (or the underscore _ ) • Followed by numerals, letters, underscore • Recommendation • Use meaningful identifiers • Go for longer names, rather than shorter C++ An Introduction to Computing, 3rd ed.

  14. Identifiers • C++ is case sensitive • firstName is not the same as firstname • Typical usage • Constants are all caps PI • Variables • Start with lower case • Capitalize first letter of successive wordsmonthlyElectricCharge C++ An Introduction to Computing, 3rd ed.

  15. Object Categories There are three kinds of objects: • Literals: • unnamed objects • having a value • (0, -3, 2.5, 2.998e8, ‘A’, “Hello\n”, ...) • Variables: • named objects • values can change during program execution • Constants: • named objects • values do not change during program execution C++ An Introduction to Computing, 3rd ed.

  16. Literals • int literals are whole numbers: -27, 0, 4, +4,012,0xA3B • double literals are real numbers, and can be: • fixed-point: -0.333, 0.5, 1.414, ... • floating-point: 2.998e8, 0.2998e9, ... • There are just twobool literals: false, true • char literals are single ASCII characters: ‘A’, ‘a’, ‘9’, ‘$’, ‘?’, ... • string literals are ASCII character sequences: “Hello”, “Goodbye”, “Goodbye\n”, ... C++ An Introduction to Computing, 3rd ed.

  17. Constants • Declaration of software objects that remain constant const double HOURLY_WAGE = 6.75; • Rules • const is a keyword • Specify type • Specify the name (caps recommended) • Must be initialized with value at declaration C++ An Introduction to Computing, 3rd ed.

  18. Constants • Reasons to use constants • Improve readability of the source code • Facilitate program modification • Good programming practice • Place all constant declarations at beginning of function where used • See some predefined constants in <climits> and <cfloat> libraries. (page 43) C++ An Introduction to Computing, 3rd ed.

  19. Variables • Give a name to a memory location • Compiler accesses specific memory location when program uses a given variable • Refer to objects in the program for which the value can change • Declarationtype variableName; // ortype variableName = initializer_expression; C++ An Introduction to Computing, 3rd ed.

  20. Variables • Variables Declaration • Can be either initialized or uninitialized... • If variable is uninitialized Contents must be considered "garbage value" • Examples: intage = 18; double GPA = 3.25, credits; char letterGrade = ‘A’; bool ok, done = false; C++ An Introduction to Computing, 3rd ed.

  21. int Representation • Integers are often represented in the twos-complement format, • High-order bit indicates the number’s sign: 210 = 00000000000000102 110 = 00000000000000012 010 = 00000000000000002 -110 = 11111111111111112 -210 = 11111111111111102 • We show 16 bits, but 32 or 64 are common. C++ An Introduction to Computing, 3rd ed.

  22. unsigned Objects • Some objects have values that are never negative, • C++ provides the unsigned type: 00000000000000002 = 010 00000000000000012 = 110 00000000000000102 = 210 ... 11111111111111102 = 6553410 11111111111111112 = 6553510 • No sign bit, numbers can be twice as big. C++ An Introduction to Computing, 3rd ed.

  23. int vs. unsigned • Using 32 bits, int values range from • -231 (-2147483648) to 231-1 (2147483647), • unsigned values range from • 0 to 232-1 (4294967295). • An int value “loses” one of its bits to the sign, • Maximum int value is about half of the maximum unsigned value. C++ An Introduction to Computing, 3rd ed.

  24. exponent (11 bits) sign (1 bit) mantissa (52 bits) double Objects • Real values are often represented in 64 bits • Use the IEEE floating point standard: C++ An Introduction to Computing, 3rd ed.

  25. double Objects • Overflow • Exponent is too large • Not enough bits to represent • Underflow • Number is so small • Not enough bits to represent negative exponent C++ An Introduction to Computing, 3rd ed.

  26. char and String Objects • Characters represented internally with binary codes • 8 bits – only 128 characters • Strings stored as a sequence of these binary codes C++ An Introduction to Computing, 3rd ed.

  27. char and String Objects • Unicode uses 16 bit codes • Possible to represent more than 65,000 characters • Can includespecialcharacters C++ An Introduction to Computing, 3rd ed.

  28. Booleans • Only two values • true and false • true stored as 1 • Anything non zero will be interpreted as true • false stored as 0 • Could be stored in a single bit • Usually stored in a word or byte C++ An Introduction to Computing, 3rd ed.

More Related