Chapter 2 - Data Types. BYU CS/ECEn 124Chapter 2 - Data Types2 Today… Unit 1 slides and homework...

50
Chapter 2 - Data Types

Transcript of Chapter 2 - Data Types. BYU CS/ECEn 124Chapter 2 - Data Types2 Today… Unit 1 slides and homework...

Chapter 2 - Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 2

Today…

Unit 1 slides and homework in JFSB B115 Problems with CCE on Talmage Window’s

machines… Drivers have to be installed with administrator

privileges Ready shortly…

Help Sessions begin Monday @4:00 pm Reading Assignments on-line under the

Schedule Tab Concerns or problems??

BYU CS/ECEn 124 Chapter 2 - Data Types 3

Concepts to Learn…

Binary Digital System Data Types Conversions Binary Arithmetic Overflow Logical Operations Floating Point Hexadecimal Numbers ASCII Characters

BYU CS/ECEn 124 Chapter 2 - Data Types 4

What are Decimal Numbers?

“Decimal” means that we have ten digits to use in our representation

the symbols 0 through 9What is 3,546?

3 thousands + 5 hundreds + 4 tens + 6 ones. 3,54610 = 3103 + 5102 + 4101 + 6100

How about negative numbers? Use two more symbols to distinguish positive

and negative, namely, + and -.

Digital Binary System

BYU CS/ECEn 124 Chapter 2 - Data Types 5

What are Binary Numbers?

“Binary” means that we have two digits to use in our representation

the symbols 0 and 1What is 1011?

1 eights + 0 fours + 1 twos + 1 ones 10112 = 123 + 022 + 121 + 120

How about negative numbers? We don’t want to add additional symbols So…

Digital Binary System

BYU CS/ECEn 124 Chapter 2 - Data Types 6

Binary Digital System

Binary (base 2) because there are two states, 0 and 1. Digital because there are a finite number of symbols. Basic unit of information is the binary digit, or bit. Bit values are represented by various physical means.

Voltages Residual magnetism Light Electromagnetic Radiation Polarization

Values with more than two states require multiple bits. A collection of 2 bits has 4 possible states: 00, 01, 10, 11

A collection of 3 bits has 8 possible states: 000, 001, 010, 011,

100, 101, 110, 111 A collection of n bits has 2n possible states.

Digital Binary System

BYU CS/ECEn 124 Chapter 2 - Data Types 7

Electronic Representation of a Bit

Relies only on approximate physical values. A logical ‘1’ is a relatively high voltage (2.4V - 5V). A logical ‘0’ is a relatively low voltage (0V - 1V).

Analog processing relies on exact values which are affected by temperature, age, etc.

Analog values are never quite the same. Each time you play a vinyl album, it will sound a bit different. CDs sound the same no matter how many times you play them.

Digital Binary System

BYU CS/ECEn 124 Chapter 2 - Data Types 8

The Power of the Bit…

Bits rely on approximate physical values that are not affected by age, temperature, etc. Music that never degrades. Pictures that never get dusty or scratched.

By using groups of bits, we can achieve high precision.

8 bits => each bit pattern represents 1/256. 16 bits => each bit pattern represents 1/65,536 32 bits => each bit pattern represents 1/4,294,967,296 64 bits => each bit pattern represents 1/18,446,744,073,709,550,000

Disadvantage: bits only represent discrete values Digital = Discrete

Digital Binary System

BYU CS/ECEn 124 Chapter 2 - Data Types 9

Binary Nomenclature

Binary Digit: 0 or 1 Bit (short for binary digit): A single binary digit LSB (least significant bit): The rightmost bit MSB (most significant bit): The leftmost bit Data sizes

1 Nibble (or nybble) = 4 bits 1 Byte = 2 nibbles = 8 bits 1 Kilobyte (KB) = 1024 bytes 1 Megabyte (MB) = 1024 kilobytes = 1,048,576 bytes 1 Gigabyte (GB) = 1024 megabytes = 1,073,741,824

bytes

Digital Binary System

BYU CS/ECEn 124 Chapter 2 - Data Types 10

What Kinds of Data?

All kinds… Numbers – signed, unsigned, integers, floating point,

complex, rational, irrational, … Text – characters, strings, … Images – pixels, colors, shapes, … Sound – pitch, amplitude, … Logical – true / false, open / closed, on / off, … Instructions – programs, … …

Data type: representation and operations within the computer

We’ll start with numbers…

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 11

Some Important Data Types

Unsigned integers only non-negative numbers 0, 1, 2, 3, 4, …

Signed integers negative, zero, positive numbers …, -3, -2, -1, 0, 1, 2, 3, …

Floating point numbers numbers with decimal point PI = 3.14159 x 100

Characters 8-bit, unsigned integers ‘0’, ‘1’, ‘2’, … , ‘a’, ‘b’, ‘c’, … , ‘A’, ‘B’, ‘C’, … , ‘@’, ‘#’,

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 12

Unsigned Integers

329102 101 100

10122 21 20

3x100 + 2x10 + 9x1 = 329 1x4 + 0x2 + 1x1 = 5

mostsignificant

leastsignificant

What do these unsigned binary numbers represent?

00000110

11111010

00011000

01111100

10111001

Weighted positional notation “3” is worth 300, because of its position, while “9” is only worth 9

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 13

Unsigned Integers (continued…)

22 21 20

0 0 0 0

0 0 1 1

0 1 0 2

0 1 1 3

1 0 0 4

1 0 1 5

1 1 0 6

1 1 1 7

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 14

Unsigned Binary Arithmetic

Base 2 addition – just like base 10! add from right to left, propagating carry

10010 10010 1111+ 1001 + 1011 + 111011 11101 10000

10111+ 111

carry

Subtraction, multiplication, division,…01111

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 15

Signed Integers

With n bits, we have 2n distinct values. assign about half to positive integers (1 through 2n-1)

and about half to negative (- 2n-1 through -1) that leaves two values: one for 0, and one extra

Positive integers just like unsigned – zero in most significant (MS) bit

00101 = 5 Negative integers

sign-magnitude – set MS bit to show negative10101 = -5

one’s complement – flip every bit to represent negative11010 = -5

MS bit indicates sign: 0=positive, 1=negative

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 16

Sign-Magnitude Integers

Representations 01111binary => 15decimal

11111 => -15 00000 => 0 10000 => -0

Problems Difficult addition/subtraction

check signs convert to positive use adder or subtractor as required

The left-bit encodes the sign:

0 = +1 =

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 17

1’s Complement Integers

Representations 00110binary => 6decimal

11001 => -6 00000 => 0 11111 => -0

Problem Difficult addition/subtraction

no need to check signs as before cumbersome logic circuits

end-around-carry

To negate a number,Invert it, bit-by-bit.

The left-bit still encodes the sign:

0 = +1 =

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 18

2’s Complement

Problems with sign-magnitude and 1’s complement two representations of zero (+0 and –0) arithmetic circuits are complex

How to add two sign-magnitude numbers?e.g., try 2 + (-3)

How to add to one’s complement numbers? e.g., try 4 + (-3)

Two’s complement representation developed to make circuits easy for arithmetic.

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 19

2’s Complement (continued…)

Simplifies logic circuit construction because addition and subtraction are always done

using the same circuitry. there is no need to check signs and convert. operations are done same way as in decimal

right to left with carries and borrows

Bottom line: simpler hardware units!

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 20

2’s Complement (continued…)

If number is positive or zero, normal binary representation

If number is negative, start with positive number flip every bit (i.e., take the one’s complement) then add one

00101 (5) 01001 (9)

11010 (1’s comp) (1’s comp)

+ 1 + 111011 (-5) (-9)

10110

10111

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 21

2’s Complement (continued…)

Positional number representation with a twist the most significant (left-most) digit has a negative weight

n-bits represent numbers in the range 2n1 … 2n1 1 What are these?

0110 = 22 + 21 = 6

1110 = -23 + 22 + 21 = -2

00000110111110100001

10000111110010111001

0121 2222 nn

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 22

2’s Complement Shortcut

To take the two’s complement of a number: copy bits from right to left until (and including)

the first “1” flip remaining bits to the left

011010000 011010000100101111 (1’s comp)

+ 1100110000 100110000

(copy)(flip)

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 23

Number Decimal Value Negated Binary Value011001110000111101001000

2’s Complement Negation

To negate a number, invert all the bits and add 1

6 10107 1001

0 0000-1 0001

4 1100

-8 1000 (??)

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 24

Quiz

00100110 (unsigned int)+ 10001101 (signed magnitude)

+ 11111101 (1’s complement) + 00001101 (2’s complement) + 10111101 (2’s complement)

(decimal)

BYU CS/ECEn 124 Chapter 2 - Data Types 25

Quiz

00100110 (unsigned int)+ 10001101 (signed magnitude)

(unsigned int)+ 11111101 (1’s complement)

(signed int)+ 00001101 (2’s complement)

(2’s complement)+ 10111101 (2’s complement)

Decimal

00011001

00010111

00100100

-31 11100001 (2’s complement)

11100000 (1’s complement)

10011111 (signed magnitude)

38+ -13

25+ -2

23+ 13

36+ -67

-31

BYU CS/ECEn 124 Chapter 2 - Data Types 26

Continually divide the number by 2 and track the remainders.

1 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20

32 + 0 + 8 + 0 + 2 + 1

= 43

432

2

2

2

2

2

Decimal to Binary Conversion

For negative numbers, do above for positive number and negate result

5 R 0

0

2 R 1

1 21 R 1

1

10 R 1

1

1 R 0

0

0 R 1

1

Conversions

BYU CS/ECEn 124 Chapter 2 - Data Types 27

Number Binary Value56

12335

-351007

Decimal to Binary Conversion

0101

0110

0111101100100011

1101110101111101111

Conversions

BYU CS/ECEn 124 Chapter 2 - Data Types 28

Sign-Extension in 2’s Complement

You can make a number wider by simply replicating its leftmost bit as desired.

0110 =000000000000000110 =

1111 = 11111111111111111 = 1 =

66

-1-1

-1

What do these represent?

Conversions

BYU CS/ECEn 124 Chapter 2 - Data Types 29

Word Sizes

In the preceding slides, every bit pattern was a different length (15 was represented as 01111).

Every real computer has a base word size our machine (MPS430) is 16-bits

Memory fetches are word-by-word even if you only want 8 bits (a byte)

Instructions are packed into words Numeric representations are word-sized

15 is represented as 0000000000001111

Conversions

BYU CS/ECEn 124 Chapter 2 - Data Types 30

Rules of Binary Addition

Rules of Binary Addition 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, with carry

Two's complement addition follows the same rules as binary addition

Two's complement subtraction is the binary addition of the minuend to the 2's complement of the subtrahend adding a negative number is the same as subtracting

a positive one

Binary Arithmetic

5 + (-3) = 2 0000 0101 = +5 + 1111 1101 = -3 --------- -- 0000 0010 = +2

BYU CS/ECEn 124 Chapter 2 - Data Types 31

Adding 2’s Complement Integers

c 00110+00101 01011

b1 00110-00101 00001

Issues Overflow: the result cannot be represented by the

number of bits available

0110+0101 1011

Hmmm. 6 + 5 -5. Obviously something went wrong.This is a case of overflow.You can tell there is a problem - a positiveplus a positive cannot give a negative.

Binary Arithmetic

BYU CS/ECEn 124 Chapter 2 - Data Types 32

Overflow Revisited

Overflow = the result doesn’t fit in the capacity of the representation

ALU’s are designed to detect overflow It’s really quite simple

if the carry in to the most significant position (MSB) is different from the carry out from the most significant position (MSB), then overflow occurred.

Generally, overflows represented in CPU status bit

Overflow

BYU CS/ECEn 124 Chapter 2 - Data Types 33

Logical Operations on Bits

A B AND0 0 00 1 01 0 01 1 1

A B OR0 0 00 1 11 0 11 1 1

A NOT0 11 0

a = 001100101b = 110010100

a AND b = ?a OR b = ?NOT a = ?A XOR b = ?

a AND b = 000000100

a = 001100101b = 110010100

a OR b = 111110101

NOT a = 110011010

A B XOR0 0 00 1 11 0 11 1 0

A XOR b = 111110001

Logical Operations

BYU CS/ECEn 124 Chapter 2 - Data Types 34

Examples of Logical Operations

AND useful for clearing bits

AND with zero = 0 AND with one = no change

OR useful for setting bits

OR with zero = no change OR with one = 1

NOT unary operation -- one argument flips every bit

11000101AND 00001111

00000101

11000101OR 00001111

11001111

NOT 1100010100111010

Logical Operations

BYU CS/ECEn 124 Chapter 2 - Data Types 35

Floating Point Numbers

Binary scientific notation 32-bit floating point

Exponent is biased Implied leading 1 in mantissa

s exponent mantissa

1 8 23

1272.11 exponents fractionN

Floating Point

BYU CS/ECEn 124 Chapter 2 - Data Types 36

Floating Point Numbers

Why the leading implied 1? Always normalize after an operation

shift mantissa until leading digit is a 1 can assume it is always there, so don’t store it

Why the biased exponent? To avoid signed exponent representations

s exponent mantissa

1 8 23

1272.11 exponents fractionN

Floating Point

BYU CS/ECEn 124 Chapter 2 - Data Types 37

Floating Point Numbers

What does this represent?

Positivenumber

Exponent is 128which means the real exponent is 1

Mantissa is to be interpreted as 1.1This is 20 + 2-1 = 1 + 1/2 = 1.5

The final number is 1.5 x 21 = 3

0 10000000 10000000000000000000000

Floating Point

BYU CS/ECEn 124 Chapter 2 - Data Types 38

Floating Point Numbers

What does this represent?

Negativenumber

Exponent is 129which means the real exponent is 2

Mantissa is to be interpreted as 1.10101This is 20 + 2-1 + 2-3 + 2-5 =

1 + 1/2 + 1/8 + 1/32 = 1.65625

The final number is -1.65625 x 22 = -6.625

1 10000001 10101000000000000000000

Floating Point

BYU CS/ECEn 124 Chapter 2 - Data Types 39

Hexadecimal Notation

Binary is hard to read and write by hand Hexadecimal is a common alternative

16 digits are 0123456789ABCDEF

0100 0111 1000 1111 = 0x478F1101 1110 1010 1101 = 0xDEAD1011 1110 1110 1111 = 0xBEEF1010 0101 1010 0101 = 0xA5A5

Binary Hex

0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F

0x is a commonprefix for writingnumbers which meanshexadecimal

1. Separate binary code into groups of 4 bits (starting from the right)

2. Translate each group into a single hex digit

Hexadecimal

BYU CS/ECEn 124 Chapter 2 - Data Types 40

Binary to Hex Conversion

Every four bits is a hex digit. start grouping from right-hand side

011101010001111010011010111

7D4F8A3

This is not a new machine representation,just a convenient way to write the number.

Hexadecimal

BYU CS/ECEn 124 Chapter 2 - Data Types 42

Decimal to Hex Examples

12decimal = 1100 = 0xc

21decimal = 0001 0101 = 0x15

55decimal = 0011 0111 = 0x37

256decimal = 0001 0000 0000 = 0x100

47decimal = 0010 1111 = 0x2f

3decimal = 0011 = 0x3

127decimal = 0111 1111 = 0x7f

1029decimal = 0100 0000 0101 = 0x405

Hexadecimal

BYU CS/ECEn 124 Chapter 2 - Data Types 43

ASCII Codes

How do you represent characters? ‘A’ ASCII is a set of standard 8-bit, unsigned

integers (codes) ' ' = 32, '0' = 48, '1' = 49, 'A' = 65, 'B' = 66

Zero-extended to word size To convert an integer digit to ASCII

character, add 48 (=‘0’) 1 + 48 = 49 => ‘1’

ASCII Characters

BYU CS/ECEn 124 Chapter 2 - Data Types 44

ASCII Characters

NUL DLE SP 0 @ P ` p

SOH DC1 ! 1 A Q a q

STX DC2 “ 2 B R b r

ETX DC3 # 3 C S c s

EOT DC4 $ 4 D T d t

ENQ NAK % 5 E U e u

ACK SYN & 6 F V f v

BEL ETB ‘ 7 G W g w

BS CAN ( 8 H X h x

HT EM ) 9 I Y i y

LF SUB * : J Z j z

VT ESC + ; K [ k {

FF FS , < L \ l |

CR GS - = M ] m }

SO RS . > N ^ n ~

SI US / ? O _ o DEL

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

0 1 2 3 4 5 6 7 8-9 a-f

More

controls

More

symbols

ASCII Characters

BYU CS/ECEn 124 Chapter 2 - Data Types 45

Properties of ASCII Code

What is relationship between a decimal digit ('0', '1', …) and its ASCII code?

What is the difference between an upper-case letter ('A', 'B', …) and its lower-case equivalent ('a', 'b', …)?

Given two ASCII characters, how do we tell which comes first in alphabetical order?

What is significant about the first 32 ASCII codes? Are 128 characters enough? (http://www.unicode.org/)

ASCII Characters

BYU CS/ECEn 124 Chapter 2 - Data Types 46

Displaying Characters

48 Decimal

58 Decimal

116 Decimal

53 Decimal

ASCII Characters

BYU CS/ECEn 124 Chapter 2 - Data Types 47

MSP430 Data Types

Words and bytes are supported directly by the Instruction Set Architecture. add.b add.w

8-bit and 16-bit 2’s complement signed integers

Other data types are supported by interpreting variable length values as logical, text, fixed-point, etc., in the software that we write.

Data Types

BYU CS/ECEn 124 Chapter 2 - Data Types 48

Review: Representation

Everything is stored in memory as one’s and zero’s integers, floating point numbers, characters program code

Data Type = Representation + Operations You can’t tell what is what just by looking at

the binary representation memory could have multiple meanings it is possible to execute your Word document

Review

BYU CS/ECEn 124 Chapter 2 - Data Types 49

Review: Numbers…

76543210

-1-2-3-4

111110101100011010001000

011010001000, 100101110111

011010001000, 111110101100

011010001000111110101100

Un-signedSigned

Magnitude1’s

Complement2’s

Complement

Range: 0 to 7 -3 to 3 -3 to 3 -4 to 3

Review

BYU CS/ECEn 124 Chapter 2 - Data Types 50

BYU CS/ECEn 124 Chapter 2 - Data Types 51

ASCII CharactersASCII Characters