500 likes | 692 Views
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
E N D
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?? Chapter 2 - Data Types
Concepts to Learn… • Binary Digital System • Data Types • Conversions • Binary Arithmetic • Overflow • Logical Operations • Floating Point • Hexadecimal Numbers • ASCII Characters Chapter 2 - Data Types
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? • 3thousands+5hundreds+ 4tens+ 6ones. • 3,54610 = 3103+ 5102+ 4101+ 6100 • How about negative numbers? • Use two more symbols to distinguish positive and negative, namely, + and -. Chapter 2 - Data Types
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? • 1eights+0fours+ 1twos+ 1ones • 10112 = 123+ 022+ 121+ 120 • How about negative numbers? • We don’t want to add additional symbols • So… Chapter 2 - Data Types
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. Chapter 2 - Data Types
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. Chapter 2 - Data Types
Digital Binary System 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 Chapter 2 - Data Types
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 Chapter 2 - Data Types
Data Types 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… Chapter 2 - Data Types
Data Types 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’, … , ‘@’, ‘#’, Chapter 2 - Data Types
most significant least significant 329 101 102 22 101 21 100 20 Data Types Unsigned Integers • What do these unsigned binary numbers represent? • Weighted positional notation • “3” is worth 300, because of its position, while “9” is only worth 9 3x100 + 2x10 + 9x1 = 329 1x4 + 0x2 + 1x1 = 5 0000 0110 1111 1010 0001 1000 0111 1100 1011 1001 Chapter 2 - Data Types
Data Types Unsigned Integers (continued…) Chapter 2 - Data Types
carry Data Types Unsigned Binary Arithmetic • Base 2 addition – just like base 10! • add from right to left, propagating carry 10010 10010 1111 + 1001 + 1011 + 1 11011 11101 10000 10111 + 111 1 1 1 1 0 Subtraction, multiplication, division,… Chapter 2 - Data Types
Data Types 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) bit00101 = 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 Chapter 2 - Data Types
Data Types 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 = - Chapter 2 - Data Types
Data Types 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 = - Chapter 2 - Data Types
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. Chapter 2 - Data Types
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! Chapter 2 - Data Types
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)01001 (9) 11010 (1’s comp)(1’s comp) + 1+ 1 11011 (-5)(-9) 10110 10111 Chapter 2 - Data Types
Data Types 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 -2n-1 … 2n-1 - 1 • What are these? 0110 = 22 + 21 = 6 1110 = -23 + 22 + 21 = -2 0000 0110 1111 1010 0001 1000 0111 1100 1011 1001 Chapter 2 - Data Types
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 011010000011010000 100101111 (1’s comp) + 1 100110000 100110000 (flip) (copy) Chapter 2 - Data Types
Data Types 2’s Complement Negation • To negate a number, invert all the bits and add 1 6 1010 7 1001 0 0000 -1 0001 4 1100 -8 1000 (??) Chapter 2 - Data Types
Quiz 00100110 (unsigned int) + 10001101 (signed magnitude) + 11111101 (1’s complement) + 00001101 (2’s complement) + 10111101 (2’s complement) (decimal) Chapter 2 - Data Types
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 38 + -13 25 + -2 23 + 13 36 + -67 -31 00011001 00010111 00100100 -31 11100001 (2’s complement) 11100000 (1’s complement) 10011111 (signed magnitude) Chapter 2 - Data Types
1 0 1 0 1 1 2 2 2 2 2 2 21 R 1 10 R 1 5 R 0 2 R 1 1 R 0 0 R 1 Conversions Decimal to Binary Conversion • Continually divide the number by 2 and track the remainders. 43 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 Chapter 2 - Data Types
Conversions Decimal to Binary Conversion 0101 0110 01111011 00100011 11011101 01111101111 Chapter 2 - Data Types
Conversions Sign-Extension in 2’s Complement • You can make a number wider by simply replicating its leftmost bit as desired. • What do these represent? 6 0110 = 000000000000000110 = 1111 = 11111111111111111 = 1 = 6 -1 -1 -1 Chapter 2 - Data Types
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 • 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 Chapter 2 - Data Types
Binary Arithmetic 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 5 + (-3) = 2 0000 0101 = +5 + 1111 1101 = -3 --------- -- 0000 0010 = +2 Chapter 2 - Data Types
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 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. 0110 +0101 1011 Chapter 2 - Data Types
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 Chapter 2 - Data Types
Logical Operations Logical Operations on Bits A B XOR 0 0 0 0 1 1 1 0 1 1 1 0 A B OR 0 0 0 0 1 1 1 0 1 1 1 1 A NOT 0 1 1 0 A B AND 0 0 0 0 1 0 1 0 0 1 1 1 a = 001100101 b = 110010100 a = 001100101 b = 110010100 a AND b = ? a OR b = ? NOT a = ? A XOR b = ? a AND b = 000000100 a OR b = 111110101 NOT a = 110011010 A XOR b = 111110001 Chapter 2 - Data Types
Logical Operations Examples of Logical Operations 11000101 AND 00001111 00000101 • 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 11000101 OR 00001111 11001111 NOT11000101 00111010 Chapter 2 - Data Types
Floating Point Floating Point Numbers • Binary scientific notation • 32-bit floating point • Exponent is biased • Implied leading 1 in mantissa 1 8 23 s exponent mantissa Chapter 2 - Data Types
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 8 23 s exponent mantissa Chapter 2 - Data Types
Positivenumber Exponent is 128which means the real exponent is 1 Floating Point Floating Point Numbers • What does this represent? 0 10000000 10000000000000000000000 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 Chapter 2 - Data Types
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 Floating Point Floating Point Numbers • What does this represent? 1 10000001 10101000000000000000000 The final number is -1.65625 x 22 = -6.625 Chapter 2 - Data Types
0x is a common prefix for writing numbers which means hexadecimal Hexadecimal Hexadecimal Notation • Binary is hard to read and write by hand • Hexadecimal is a common alternative • 16 digits are 0123456789ABCDEF Binary Hex 0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F 0100 0111 1000 1111 = 0x478F 1101 1110 1010 1101 = 0xDEAD 1011 1110 1110 1111 = 0xBEEF 1010 0101 1010 0101 = 0xA5A5 • Separate binary code into groups of 4 bits (starting from the right) • Translate each group into a single hex digit Chapter 2 - Data Types
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. Chapter 2 - Data Types
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 Chapter 2 - Data Types
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’ Chapter 2 - Data Types
ASCII Characters ASCII Characters 0 1 2 3 4 5 6 7 8-9 a-f 0 1 2 3 4 5 6 7 8 9 a b c d e f More controls More symbols Chapter 2 - Data Types
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/) Chapter 2 - Data Types
48 Decimal 116 Decimal 53 Decimal 58 Decimal ASCII Characters Displaying Characters Chapter 2 - Data Types
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. Chapter 2 - Data Types
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 Chapter 2 - Data Types
Review Review: Numbers… Signed Magnitude 1’s Complement 2’s Complement Un-signed 7 6 5 4 3 2 1 0 -1 -2 -3 -4 111 110 101 100 011 010 001 000 011 010 001 000, 100 101 110 111 011 010 001 000, 111 110 101 100 011 010 001 000 111 110 101 100 Range: 0 to 7 -3 to 3 -3 to 3 -4 to 3 Chapter 2 - Data Types
ASCII Characters ASCII Characters Chapter 2 - Data Types