Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by...

28
Types Chapter 2

description

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

Transcript of Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by...

Page 1: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

Types

Chapter 2

Page 2: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 2

ObjectivesObserve types provided by C++• Literals of these types

Explain syntax rules for identifier namesStudy variables and constants• What they are• How they differ• How to declare• How to use

Investigate internal representationsFirst look at class attribute variables

Page 3: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 3

Types and DeclarationsFundamental 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

Page 4: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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) – short int• Range -32768 … 32767

32bits (4 bytes) – long int (or long)• Range -2137483648 … 2137483647 (maybe

64)One bit used for the sign

Page 5: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

Page 6: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

Page 7: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

Page 8: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

41.23 10

Page 9: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

forms0.12e111.2E1012.0E912.e912E9

Page 10: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 10

Characters

char typeRepresents individual characters• See ASCII character set in Appendix A

Characters represented in memory by numeric valuesCharacter literals• Characters enclosed in single quotes'X' '7' '>' 'e'

Page 11: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 11

Characters

Escape characters• A backslash \ combined with another character hold

special meaning

Character C++ Escape Sequence

Newline \nHorizontal tab \t

Vertical tab \vBackspace \b

Carriage Return \rForm Feed \fAlert (beep) \a

Page 12: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

Page 13: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 13

Identifiers

Names given to software objectsRules:• 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

Page 14: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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 words

monthlyElectricCharge

Page 15: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 15

Object CategoriesThere 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

Page 16: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 16

Literalsint 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 two bool literals: false, truechar literals are single ASCII characters: ‘A’, ‘a’, ‘9’, ‘$’, ‘?’, ...string literals are ASCII character sequences: “Hello”, “Goodbye”, “Goodbye\n”, ...

Page 17: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 17

Constants

Declaration of software objects that remain constantconst double HOURLY_WAGE = 6.75;

Rules• const is a keyword• Specify type• Specify the name (caps recommended)• Must be initialized with value at declaration

Page 18: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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 usedSee some predefined constants in <climits> and <cfloat> libraries. (page 43)

Page 19: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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 changeDeclarationtype variableName; // ortype variableName = initializer_expression;

Page 20: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 20

VariablesVariables Declaration• Can be either initialized or uninitialized...• If variable is uninitialized Contents must be

considered "garbage value"

Examples:int age = 18;double GPA = 3.25, credits;char letterGrade = ‘A’;bool ok, done = false;

Page 21: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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.

Page 22: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 22

unsigned ObjectsSome 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.

Page 23: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 23

int vs. unsignedUsing 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.

Page 24: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 24

double Objects

Real values are often represented in 64 bits Use the IEEE floating point standard:

mantissa(52 bits)

exponent(11 bits)

sign(1 bit)

Page 25: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

Page 26: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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

Page 27: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

C++ An Introduction to Computing, 3rd ed. 27

char and String Objects

Unicode uses 16 bit codesPossible to represent more than 65,000 characters

Can includespecialcharacters

Page 28: Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.

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