CMSC 150 data representation

Post on 23-Feb-2016

17 views 0 download

description

CMSC 150 data representation. CS 150: Mon 30 Jan 2012. What Happens When…. Steps Of An Executing Program. Initially, the program resides as a (binary) file on the disk. Steps Of An Executing Program. When you click an icon to start a program…. Steps Of An Executing Program. - PowerPoint PPT Presentation

Transcript of CMSC 150 data representation

CMSC 150DATA

REPRESENTATION

CS 150: Mon 30 Jan 2012

What Happens When…2

Steps Of An Executing Program

3

Initially, the program resides as a (binary) file

on the disk

4

Steps Of An Executing Program

When you click an icon to start a

program…

5

Steps Of An Executing Program

the program is copied from disk

into memory (RAM)…

6

Steps Of An Executing Program

so the program can be executed by the CPU…

127128129130131132

01010010

133134

.

.

.

……

01010110 01110010 11010010 10110010 10111110 11100000 00000001

01010010 11100000

A Program in Memory Program: consists of

instructions & data

Instructions & data stored together in memory

127128129130131132

01010010

133134

.

.

.

……

01010110 01110010 11010010 10110010 10111110 11100000 00000001

01010010 11100000

Instructions

A Program in Memory

127128129130131132

01010010

133134

.

.

.

……

01010110 01110010 11010010 10110010 10111110 11100000 00000001

01010010 11100000

A Program in Memory

Instructions

Data

127128129130131132

01010010

133134

.

.

.

……

01010110 01110010 11010010 10110010 10111110 11100000 00000001

01010010 11100000

A Program in Memory

Instructions

Data

How do we interpret these 0's and 1's?

The Decimal Number System

Deci-

Base is ten first (rightmost) place: ones (i.e., 100) second place: tens (i.e., 101) third place: hundreds (i.e., 102) …

Digits available: 0, 1, 2, …, 9 (ten total)

The Binary Number System Bi- (two)

bicycle, bicentennial, biphenyl

Base two first (rightmost) place: ones (i.e., 20) second place: twos (i.e., 21) third place: fours (i.e., 22) …

Digits available: 0, 1 (two total)

Lingo Bit (b): one binary digit (0 or 1)

Byte (B): eight bits

Prefixes: Kilo (K) = 210 = 1024 Mega (M) = 220 = 1,048,576 = 210 K Giga (G) = 230 = 1,073,741,824 = 210 M Tera (T) = 240 = 1,099,511,627,776 = 210 G Peta (P) = 250 = 1,125,899,906,842,624 = 210 T … Yotta (Y) = 280 = 1,208,925,819,614,629,174,706,176 = 230 P

Representing Decimal in Binary Moving right to left, include a "slot" for

every power of two ≤ your decimal number

Then, moving left to right: Put 1 in the slot if that power of two can be

subtracted from your total remaining Put 0 in the slot if not Continue until all slots are filled

filling to the right with 0's as necessary

Example: A Famous Number Anyone recognize this number ?

100001000101111111101101

Example: A Famous Number Anyone recognize this number ?

8,675,30910

=

?????????????????????2

What is 210 ?

Example: A Famous Number Anyone recognize this number ?

8,675,30910

=

?????????????????????2

What is 210 ? 220 ?

Example: A Famous Number Anyone recognize this number ?

8,675,30910

=

?????????????????????2

What is 210 ? 220 ? 230 ?

Example: A Famous Number Anyone recognize this number ?

8,675,30910

=

?????????????????????2

What is 210 ? 220 ? 230 ? 225 ?

Example: A Famous Number Anyone recognize this number ?

8,675,30910 =

?????????????????????2

What is 210 ? 220 ? 230 ? 225 ? Need 24 places (bits)

223 = 8,388,608

To the whiteboard,

Robin !

Example: A Famous Number Anyone recognize this number ?

8,675,30910

=

1000010001011111111011012

Fewer available digits in binary more space required for representation

Converting Binary to Decimal

For each 1, add the corresponding power of two

10100101111012

Converting Binary to Decimal

For each 1, add the corresponding power of two

10100101111012 = 530910

Now You Get The Joke

THERE ARE 10 TYPES OF PEOPLE IN THE WORLD:

THOSE WHO CAN COUNT IN BINARY

AND THOSE WHO CAN'T

Why Binary?

A B A xor B A and B

0 0

0 1

1 0

1 1

Circuits: low voltage == 0, high voltage == 1

Why Binary?

A B A xor B A and B

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Circuits: low voltage == 0, high voltage == 1

Why Binary?

A B A xor B A and B

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

A + B sumA + B carry

Circuits: low voltage == 0, high voltage == 1

Half Adder

An Alternative to Binary? 1000010001011111111011012 = 8,675,30910

1000001001011111111011012 = 8,544,23710

An Alternative to Binary? 1000010001011111111011012 = 8,675,30910

1000001001011111111011012 = 8,544,23710

What if this was km to landing?

The Hexadecimal Number System

Hexa- (six) Decimal (ten) Base sixteen

first (rightmost) place: ones (i.e., 160) second place: sixteens (i.e., 161) third place: two-hundred-fifty-sixes (i.e., 162) …

Digits available: sixteen total 0, 1, 2, …, 9, A, B, C, D, E, F

Wikipedia says… Donald Knuth has pointed out

that the etymologically correct term is "senidenary", from the Latin term for "grouped by 16".

The terms "binary", "ternary" and "quaternary" are from the same Latin construction, and the etymologically correct term for "decimal" arithmetic is "denary".

Schwartzman notes that the pure expectation from the form of usual Latin-type phrasing would be "sexadecimal", but then computer hackers would be tempted to shorten the word to "sex".

Using Hex Can convert decimal to hex and vice-

versa process is similar, but using base 16 and 0-

9, A-F

Most commonly used as a shorthand for binary

Avoid this

More About Binary How many different things can you

represent using binary:

with only one slot (i.e., one bit)? with two slots (i.e., two bits)? with three bits? with n bits?

More About Binary How many different things can you

represent using binary:

with only one slot (i.e., one bit)? 2 with two slots (i.e., two bits)? 22 = 4 with three bits? 23 = 8 with n bits? 2n

Binary vs. Hex One slot in hex can be one of 16 values

0, 1, 2, …, 9, A, B, C, D, E, F

How many bits to represent one hex digit?

I.e., how many bits to represent 16 different things?

Binary vs. Hex One slot in hex can be one of 16 values

0, 1, 2, …, 9, A, B, C, D, E, F

How many bits to represent one hex digit?

4 bits can represent 24 = 16 different values

Binary vs. Hex0 00001 00012 00103 00114 01005 01016 01107 0111

8 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111

Converting Binary to Hex Moving right to left, group into bits of

four Convert each four-group to

corresponding hex digit

1000010001011111111011012

Converting Binary to Hex Moving right to left, group into bits of

four Convert each four-group to

corresponding hex digit

1000 0100 0101 1111 1110 11012

Converting Binary to Hex Moving right to left, group into bits of

four Convert each four-group to

corresponding hex digit

1000 0100 0101 1111 1110 11012 8 4 5 F E D

1000010001011111111011012 = 845FED16

Converting Hex to Binary Convert each hex digit to four-bit binary

equivalent

BEEF16 = ????2

Converting Hex to Binary Convert each hex digit to four-bit binary

equivalent

BEEF16 = 1011 1110 1110 11112

Representing Different Information

So far, everything has been a number

What about characters? Punctuation?

Idea: put all the characters, punctuation in order assign a unique number to each done! (we know how to represent

numbers)

ASCII: American Standard Code for Information Interchange

'A' = 6510 = 010000012

'c' = 9910 = 011000112

'8' = 5610 = 001110002

ASCII: American Standard Code for Information Interchange

256 total characters…

How many bits needed?

ASCII: American Standard Code for Information Interchange

The Problem with ASCII What about Greek characters? Chinese?

UNICODE: use more bits UTF-8: use 1-4 eight-bit bytes 1,112,064 “code points” backward compatible w/ ASCII

How many characters could we represent w/ 32 bits? 232 = 4,294,967,296

You Control The Information What is this? 01001101

You Control The Information What is this? 01001101

Depends on how you interpret it:

010011012 = 7710 010011012 = 'M' 0100110110 = one million one thousand one hundred & one A machine-language instruction

You must be clear on representation and interpretation

Strings… "1000"

There are four characters '1' '0' '0' '0'

The binary representation is 00110001 00110000 00110000

00110000

100010 = 11111010002

Strings… "1000"

There are four characters '1' '0' '0' '0'

The binary representation is 00110001 00110000 00110000

00110000

100010 = 11111010002

“1234” ≠ 1234

One Last Thing… Real valued (AKA floating point) numbers?

Round-off error!

FLOPS: Floating Point Operations Per Second

One Last Thing… Real valued (AKA floating point) numbers?

Round-off error!

FLOPS: Floating Point Operations Per Second