Chapter 02 - Data Types
Download
Report
Transcript Chapter 02 - Data Types
Chapter 2 - Data Types
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
2
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
3
Digital Binary System
What are Decimal Numbers?
“Decimal” means that we have ten digits to
use in our representation
the symbols 0 through 9
What is 3,546?
3 thousands + 5 hundreds + 4 tens + 6 ones.
3 + 5102 + 4101 + 6100
3,54610 = 310
How about negative numbers?
Use two more symbols to distinguish positive
and negative, namely, + and -.
BYU CS/ECEn 124
Chapter 2 - Data Types
4
Digital Binary System
What are Binary Numbers?
“Binary” means that we have two digits to
use in our representation
the symbols 0 and 1
What is 1011?
1 eights + 0 fours + 1 twos + 1 ones
3 + 022 + 121 + 120
10112 = 12
How about negative numbers?
We don’t want to add additional symbols
So…
BYU CS/ECEn 124
Chapter 2 - Data Types
5
Digital Binary System
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.
BYU CS/ECEn 124
Chapter 2 - Data Types
6
Digital Binary System
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.
BYU CS/ECEn 124
Chapter 2 - Data Types
7
Digital Binary System
The Power of the Bit…
Bits rely on approximate physical values that are
not affected by age, temperature, etc.
By using groups of bits, we can achieve high
precision.
Music that never degrades.
Pictures that never get dusty or scratched.
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
BYU CS/ECEn 124
Chapter 2 - Data Types
8
Digital Binary System
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
BYU CS/ECEn 124
Chapter 2 - Data Types
9
Data Types
What Kinds of Data?
All kinds…
Data type:
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, …
…
representation and operations within the computer
We’ll start with numbers…
BYU CS/ECEn 124
Chapter 2 - Data Types
10
Data Types
Some Important Data Types
Unsigned integers
Signed integers
negative, zero, positive numbers
…, -3, -2, -1, 0, 1, 2, 3, …
Floating point numbers
only non-negative numbers
0, 1, 2, 3, 4, …
numbers with decimal point
PI = 3.14159 x 100
Characters
8-bit, unsigned integers
‘0’, ‘1’, ‘2’, … , ‘a’, ‘b’, ‘c’, … , ‘A’, ‘B’, ‘C’, … , ‘@’, ‘#’,
BYU CS/ECEn 124
Chapter 2 - Data Types
11
Data Types
Unsigned Integers
Weighted positional notation
“3” is worth 300, because of its position, while “9” is
only worth 9
most
significant
329
102 101 100
22
3x100 + 2x10 + 9x1 = 329
least
significant
101
21
20
1x4 + 0x2 + 1x1 = 5
What do these unsigned binary numbers
represent?
0000
0110
BYU CS/ECEn 124
1111
1010
0001
1000
Chapter 2 - Data Types
0111
1100
1011
1001
12
Data Types
Unsigned Integers (continued…)
22
0
0
0
0
1
1
1
1
BYU CS/ECEn 124
21
0
0
1
1
0
0
1
1
20
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
Chapter 2 - Data Types
13
Data Types
Unsigned Binary Arithmetic
Base 2 addition – just like base 10!
add from right to left, propagating carry
carry
10010
+ 1001
11011
10010
+ 1011
11101
1111
+
1
10000
10111
+ 111
11110
Subtraction, multiplication, division,…
BYU CS/ECEn 124
Chapter 2 - Data Types
14
Data Types
Signed Integers
With n bits, we have 2n distinct values.
Positive integers
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
just like unsigned – zero in most significant (MS) bit
00101 = 5
Negative integers
sign-magnitude – set MS bit to show negative
10101 = -5
one’s complement – flip every bit to represent negative
11010 = -5
MS bit indicates sign: 0=positive, 1=negative
BYU CS/ECEn 124
Chapter 2 - Data Types
15
Data Types
Sign-Magnitude Integers
Representations
01111binary
11111
00000
10000
=> 15decimal
=> -15
=> 0
=> -0
The left-bit encodes
the sign:
0 = +
1 = -
Problems
Difficult addition/subtraction
check signs
convert to positive
use adder or subtractor as required
BYU CS/ECEn 124
Chapter 2 - Data Types
16
Data Types
1’s Complement Integers
Representations
00110binary
11001
00000
11111
=> 6decimal
=> -6
=> 0
=> -0
Problem
To negate a number,
Invert it, bit-by-bit.
The left-bit still
encodes the sign:
0 = +
1 = -
Difficult addition/subtraction
no need to check signs as before
cumbersome logic circuits
BYU CS/ECEn 124
end-around-carry
Chapter 2 - Data Types
17
Data Types
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.
BYU CS/ECEn 124
Chapter 2 - Data Types
18
Data Types
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!
BYU CS/ECEn 124
Chapter 2 - Data Types
19
Data Types
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)
11010 (1’s comp)
+
1
11011 (-5)
BYU CS/ECEn 124
01001 (9)
10110 (1’s comp)
+
1
10111 (-9)
Chapter 2 - Data Types
20
Data Types
2’s Complement (continued…)
Positional number representation with a twist
the most significant (left-most) digit has a negative
weight
22
21
- 2n-1 2n-2 21 20
0110 =
+
= 6
1110 = -23 + 22 + 21 = -2
n-bits represent numbers in the range -2n-1 … 2n-1 - 1
What are these?
0000
0110
1111
1010
0001
BYU CS/ECEn 124
1000
0111
1100
1011
1001
Chapter 2 - Data Types
21
Data Types
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
100101111
+
1
100110000
BYU CS/ECEn 124
011010000
(1’s comp)
(flip)
(copy)
100110000
Chapter 2 - Data Types
22
Data Types
2’s Complement Negation
To negate a number, invert all the bits and add 1
Number
0110
0111
0000
1111
0100
1000
BYU CS/ECEn 124
Decimal Value
Negated Binary Value
6
7
0
-1
4
-8
1010
1001
0000
0001
1100
1000
Chapter 2 - Data Types
(??)
23
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
24
Quiz
+
+
+
+
00100110
10001101
00011001
11111101
00010111
00001101
00100100
10111101
-31
11100001
11100000
10011111
BYU CS/ECEn 124
(unsigned int)
(signed magnitude)
(unsigned int)
(1’s complement)
(signed int)
(2’s complement)
(2’s complement)
(2’s complement)
Decimal
(2’s complement)
(1’s complement)
(signed magnitude)
Chapter 2 - Data Types
+
+
+
+
38
-13
25
-2
23
13
36
-67
-31
25
Conversions
Decimal to Binary Conversion
Continually divide the number by 2 and track
the remainders.
2 43
2 21 R 1
2 10 R 1
2 5 R0
2 2 R1
2
1 R0
0 R1
101011
1 25 + 0 24 + 1 23 + 0 22 + 1 21 + 1 20
32 +
0
+
8
+ 0
+
2 + 1
= 43
For negative numbers, do above for positive
number and negate result
BYU CS/ECEn 124
Chapter 2 - Data Types
26
Conversions
Decimal to Binary Conversion
Number
Binary Value
0101
5
0110
6
01111011
123
00100011
35
11011101
-35
1007 01111101111
BYU CS/ECEn 124
Chapter 2 - Data Types
27
Conversions
Sign-Extension in 2’s Complement
What do these represent?
0110 = 6
000000000000000110 = 6
1111 = -1
11111111111111111 = -1
1 = -1
You can make a number wider by simply
replicating its leftmost bit as desired.
BYU CS/ECEn 124
Chapter 2 - Data Types
28
Conversions
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
Memory fetches are word-by-word
our machine (MPS430) is 16-bits
even if you only want 8 bits (a byte)
Instructions are packed into words
Numeric representations are word-sized
15 is represented as 0000000000001111
BYU CS/ECEn 124
Chapter 2 - Data Types
29
Binary Arithmetic
Rules of Binary Addition
Rules of Binary Addition
0+0=0
0+1=1
1+0=1
1 + 1 = 0, with carry
5 + (-3) = 2
0000 0101 =
+ 1111 1101 =
--------0000 0010 =
+5
-3
-+2
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
BYU CS/ECEn 124
Chapter 2 - Data Types
30
Binary Arithmetic
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
BYU CS/ECEn 124
Hmmm. 6 + 5 -5.
Obviously something went wrong.
This is a case of overflow.
You can tell there is a problem - a positive
plus a positive cannot give a negative.
Chapter 2 - Data Types
31
Overflow
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
BYU CS/ECEn 124
Chapter 2 - Data Types
32
Logical Operations
Logical Operations on Bits
A
0
0
1
1
B
0
1
0
1
AND
0
0
0
1
a = 001100101
b = 110010100
a AND b = ?
a OR b = ?
NOT a
= ?
A XOR b = ?
BYU CS/ECEn 124
A
0
0
1
1
B
0
1
0
1
A
0
0
1
1
OR
0
1
1
1
a
b
B
0
1
0
1
XOR
0
1
1
0
A
0
1
NOT
1
0
= 001100101
= 110010100
a AND b = 000000100
a OR b = 111110101
NOT a
= 110011010
A XOR b = 111110001
Chapter 2 - Data Types
33
Logical Operations
Examples of Logical Operations
AND
useful for clearing bits
OR
useful for setting bits
AND with zero = 0
AND with one = no change
11000101
AND 00001111
00000101
OR
OR with zero = no change
OR with one = 1
NOT
NOT
unary operation -- one argument
flips every bit
BYU CS/ECEn 124
Chapter 2 - Data Types
11000101
00001111
11001111
11000101
00111010
34
Floating Point
Floating Point Numbers
Binary scientific notation
32-bit floating point
1
s
8
exponent
23
mantissa
N -1s 1. fraction 2exponent-127
Exponent is biased
Implied leading 1 in mantissa
BYU CS/ECEn 124
Chapter 2 - Data Types
35
Floating Point
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
1
s
8
exponent
23
mantissa
N -1s 1. fraction 2exponent-127
BYU CS/ECEn 124
Chapter 2 - Data Types
36
Floating Point
Floating Point Numbers
What does this represent?
0 10000000 10000000000000000000000
Positive
number
Exponent is 128
which means the
real exponent is 1
Mantissa is to be interpreted as 1.1
This is 20 + 2-1 = 1 + 1/2 = 1.5
The final number is 1.5 x 21 = 3
BYU CS/ECEn 124
Chapter 2 - Data Types
37
Floating Point
Floating Point Numbers
What does this represent?
1 10000001 10101000000000000000000
Negative
number
Exponent is 129
which means the
real exponent is 2
Mantissa is to be interpreted as 1.10101
This 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
BYU CS/ECEn 124
Chapter 2 - Data Types
38
Hexadecimal
Hexadecimal Notation
Binary is hard to read and write by hand
Hexadecimal is a common alternative 0000 0
Binary Hex
16 digits are 0123456789ABCDEF
0100
1101
1011
1010
0111
1110
1110
0101
1000
1010
1110
1010
1111
1101
1111
0101
1. Separate binary code into
groups of 4 bits (starting
from the right)
2. Translate each group into a
single hex digit
BYU CS/ECEn 124
=
=
=
=
0x478F
0xDEAD
0xBEEF
0xA5A5
0x is a common
prefix for writing
numbers which means
hexadecimal
Chapter 2 - Data Types
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
39
Hexadecimal
Binary to Hex Conversion
Every four bits is a hex digit.
start grouping from right-hand side
011101010001111010011010111
3
A
8
F
4
D
7
This is not a new machine representation,
just a convenient way to write the number.
BYU CS/ECEn 124
Chapter 2 - Data Types
40
Hexadecimal
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
BYU CS/ECEn 124
Chapter 2 - Data Types
42
ASCII Characters
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’
BYU CS/ECEn 124
Chapter 2 - Data Types
43
ASCII Characters
ASCII Characters
0
0
NUL
1
DLE
2
SP
3
0
4
@
5
P
6
`
7
p
1
SOH
DC1
!
1
A
Q
a
q
2
STX
DC2
“
2
B
R
b
r
3
ETX
DC3
#
3
C
S
c
s
4
EOT
DC4
$
4
D
T
d
t
5
ENQ
NAK
%
5
E
U
e
u
6
ACK
SYN
&
6
F
V
f
v
7
BEL
ETB
‘
7
G
W
g
w
8
BS
CAN
(
8
H
X
h
x
9
HT
EM
)
9
I
Y
i
y
a
LF
SUB
*
:
J
Z
j
z
b
VT
ESC
+
;
K
[
k
{
c
FF
FS
,
<
L
\
l
|
d
CR
GS
-
=
M
]
m
}
e
SO
RS
.
>
N
^
n
~
f
SI
US
/
?
O
_
o
DEL
BYU CS/ECEn 124
Chapter 2 - Data Types
8-9
a-f
More
More
controls
symbols
44
ASCII Characters
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/)
BYU CS/ECEn 124
Chapter 2 - Data Types
45
ASCII Characters
Displaying Characters
48 Decimal
116 Decimal
53 Decimal
58 Decimal
BYU CS/ECEn 124
Chapter 2 - Data Types
46
Data Types
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.
BYU CS/ECEn 124
Chapter 2 - Data Types
47
Review
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
BYU CS/ECEn 124
Chapter 2 - Data Types
48
Review
Review: Numbers…
Signed
1’s
Un-signed Magnitude Complement
7
6
5
4
3
2
1
0
-1
-2
-3
-4
Range:
BYU CS/ECEn 124
111
110
101
100
011
010
001
000
0 to 7
011
010
001
000, 100
101
110
111
-3 to 3
011
010
001
000, 111
110
101
100
-3 to 3
Chapter 2 - Data Types
2’s
Complement
011
010
001
000
111
110
101
100
-4 to 3
49
BYU CS/ECEn 124
Chapter 2 - Data Types
50
ASCII Characters
ASCII Characters
BYU CS/ECEn 124
Chapter 2 - Data Types
51