Upload
nathan-yeung
View
2.708
Download
1
Embed Size (px)
Citation preview
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