Transcript Document
Representing Numbers: Integers • Humans use Decimal Number System • Computers use Binary Number System • Important to understand Decimal system before looking at binary system • Decimal Numbers - Base 10 – 10 digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – Positional number system: the position of a digit in a number determines its value – Take the number 1649 • The 1 is worth 1000 • The 9 is worth 9 units – Formally, the digits in a decimal number are weighted by increasing powers of 10 i.e. they use the base 10. We can write 1649 in the following form: • 1*103 + 6*102 + 4*101 + 9*100 Comp 1001: IT & Architecture - Joe Carthy 1 Representing Numbers: Integers • • • weighting: Digits 1649 = 103 1 1*103 + 102 6 6*102 + 101 4 4*101 + 100 9 9*100 • Least Significant Digit: rightmost one - 9 above – Lowest power of 10 weighting – Digits on the right hand side are called the low-order digits (lower powers of 10). • Most Significant Digit: leftmost one - 1 above – Highest power of 10 weighting – The digits on the left hand side are called the high-order digits (higher powers of 10) Comp 1001: IT & Architecture - Joe Carthy 2 Representing Numbers: Decimal Numbers • Largest n-digit number ? – Made up of n consecutive 9’s (= 10n -1 ) – Largest 4-digit number if 9999 – 9999 is 104 -1 • Distinguishing Decimal from other number systems such as Binary, Hexadecimal (base 16) and Octal (base 8) – How do we know whether the number 111 is decimal or binary – One convention is to use subscripts – Decimal: 11110 Binary:1112 Hex: 11116 Octal: 1118 • Difficult to write use keyboard – Another convention is to append a letter (D, B, H, O) • Decimal: 111D Binary:111B Hex: 111H Comp 1001: IT & Architecture - Joe Carthy Octal: 111O 3 Representing Numbers: Binary Numbers • Binary numbers are Base 2 numbers – Only 2 digits: 0 and 1 – Formally, the digits in a binary number are weighted by increasing powers of 2 – They operate as decimal numbers do in all other respects – Consider the binary number 0101 1100 • • Weight 27 bits 0 • • • 01011100 = 0*27 + 1*26 + 0*25 + 1*24 + 1*23 + 1*22 + 0*21 + 0*20 = 0 + 6410 + 0 + 1610 + 810 + 410 + 0 + 0 = 9210 26 1 25 0 24 1 23 1 Comp 1001: IT & Architecture - Joe Carthy 22 1 21 0 20 0 4 Representing Numbers: Binary Numbers • Leftmost bit is the most significant bit (MSB). – The leftmost bits in a binary number are referred to as the high-order bits. • Rightmost bit is the least significant bit (LSB). – The rightmost bits in a binary number are referred to as the low-order bits. – Largest n-bit binary number ? • Made up of n consecutive 1’s (= 2n -1) • e.g. largest 4-bit number: 1111 = 24 -1 = 15 Comp 1001: IT & Architecture - Joe Carthy 5 Representing Numbers: Binary Numbers • Exercises • Convert the following binary numbers to decimal: • (i) 1000 1000 (ii) 1000 1001 (iii) 1000 0111 • (iv) 0100 0001 (v) 0111 1111 (vi) 0110 0001 • Joe Carthy Formatting Convention • In these notes we insert a space after every 4 bits to make the numbers easier to read Comp 1001: IT & Architecture - Joe Carthy 6 Representing Numbers: Converting Decimal to Binary • To convert from one number base to another: – you repeatedly divide the number to be converted by the new base – the remainder of the division at each stage becomes a digit in the new base – until the result of the division is 0. • • • • • • • • • • Example: To convert decimal 35 to binary we do the following: 35 / 2 17 / 2 8/2 4/2 2/2 1/2 0 Remainder 1 1 0 0 0 1 The result is read upwards giving 3510 = 1000112. Comp 1001: IT & Architecture - Joe Carthy 7 Representing Numbers: Converting Decimal to Binary • Exercise: Convert the following decimal numbers to binary • (1) 64(2) 65 (3) 32 (4) 16 (5) 48 • Shortcuts • • • • • To convert any decimal number which is a power of 2, to binary, simply write 1 followed by the number of zeros given by the power of 2. For example, 5 32 is 2 , so we write it as 1 followed by 5 zeros, i.e. 10000; 128 is 27 so we write it as 1 followed by 7 zeros, i.e. 100 0000. Remember that the largest binary number that can be stored in a given number of bits is made up of n 1’s. An easy way to convert this to decimal, is to note that this is the same as 2n - 1. For example, if we are using 4-bit numbers, the largest value we can represent is 1111 which is 24-1, i.e. 15 Comp 1001: IT & Architecture - Joe Carthy 8 Representing Numbers: Converting Decimal to Binary • Binary Numbers occur so frequently that you should remember Binary Decimal 111 7 1111 15 0111 1111 127 1111 1111 255 Comp 1001: IT & Architecture - Joe Carthy because they 9 Review • • • • • • • Decimal Number System - Base 10 Significant Digits Binary Number System - Base 2 Notation (B,D,H,O) Binary to Decimal Decimal to Binary Shortcuts and Common Binary Numbers • Review Questions • • • What is a positional number system ? What is the MSB and the LSB. Give an example of each one. Show how the weights of the bits in an – 8-bit binary number – 16-bit binary numbe • • • What is the weight of the MSB in (a) 8-bit number (b) 16-bit number (c) 32-bit number Convert 48D, 65D, 31D, 15D to binary Convert 1111 0111B, 1010 1010B and 1110 0111B to decimal Comp 1001: IT & Architecture - Joe Carthy 10 Hexadecimal Number System • • • • • Base-16 number System 16 digits: 0, 1, 2, .., 9, A, B, C, D, E, F. We use the letters A to F to represent numbers 10 to 15 using a single symbol A = 10; B = 11; C = 12; D = 13; E = 14; F = 15; Use H at right hand side to indicate Hexadecimal • Used because – – • binary numbers are very long and so are error prone Easy to convert between hexadecimal and binary than between decimal and binary Example: Convert 2FAH to decimal weighting: digits 2FA = = = = 162 2 2 * 162 + 2 * 162 + 256 + 50610 161 F F * 161 15 * 161 240 Comp 1001: IT & Architecture - Joe Carthy + + + 160 A A * 160 10 * 160 10 11 Hexadecimal Number System Binary 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Comp 1001: IT & Architecture - Joe Carthy 12 Hexadecimal Number System • Example 2: Convert FFFH to decimal weighting: digits 2FA • • • = = = = 162 F F * 162 + 15 * 162 + 3840 + 409510 161 F F * 161 15 * 161 240 + + + 160 F F * 160 15 * 160 15 Example 3: Convert 65D to Hexadecimal 65 / 16 = 4 Remainder 1 4 / 16 = 0 Remainder 4 – 65D = 41H • Exercise: Convert 97D, 48D, 255D to Hexadecimal Comp 1001: IT & Architecture - Joe Carthy 13 Hexadecimal Number System • Hexadecimal to Binary • Convert each Hex digit to a 4-bit binary number • Example: 7FAH 7 0111 F 1111 A 1010 7FA = 0111 1111 1010B • Exercise: Convert FFH, FEH, BBH to binary Comp 1001: IT & Architecture - Joe Carthy 14 Hexadecimal Number System • Binary to Hexadecimal • • • Break binary numbers into groups of 4-bits from right hand side Pad with 0’s on left if necessary Convert each group of 4-bits to its equivalent Hex digit • Example 1: 111100111011B Decimal Hex 1111 15 F 0011 3 3 1011 11 B 111100111011B = F3BH • Exercise: Convert 11 1111 1010B; 111 1101 1111B and 1111 1111 1111 1111B to Hexadecimal Comp 1001: IT & Architecture - Joe Carthy 15 Signed Numbers • How do we represent negative numbers ? • • Humans use a symbol to indicate number sign: “-” or “+” In computer we only have binary: 1’s and 0’s . • Two common methods for representing signed numbers – Signed Magnitude – Two’s Complement (2’s Complement) • In the following assume we are working with 8-bit numbers • • • • • • Signed Magnitude We designate the leftmost bit i.e the MSB as a sign bit The sign bit indicates whether a number is positive or negative 0 sign bit => positive number 1 sign bit => negative number The remaining bits give the magnitude of the number Comp 1001: IT & Architecture - Joe Carthy 16 Signed Numbers • Example +15 and -15 as 8-bit numbers • +15 => 0 000 1111B MSB = 0 => + • -15 => 1 000 1111B MSB = 1 => - • Note the magnitude is comprised of 7 bits • Largest positive number is 0111 1111 => +127 • Largest negative number is 1 111 111 => -127 • Two representations of zero ! 0 000 0000 and 1 000 0000 Comp 1001: IT & Architecture - Joe Carthy 17 Signed Numbers: 2’s Complement • In a complementary number system each number has a unique representation. • Two’s complement is a complementary number system used in computers • It is the most commonly used method for representing signed numbers • Uses only one representation of zero: 0000 0000 • Uses a sign bit as for signed magnitude – 0 sign bit => positive number – 1 sign bit => negative number • In the case of positive numbers, the representation is identical to that of signed magnitude, • the sign bit is 0 and the remaining bits represent the positive number. • In the case of negative numbers, the sign bit is 1 but the bits to the right of the sign bit do not directly indicate the magnitude of the number. Comp 1001: IT & Architecture - Joe Carthy 18 Signed Numbers: 2’s Complement • In negative numbers the sign bit carries a negative weight while all other bits carry a positive weight e.g. the 2’s complement number 1000 0011B is weighted as follows Bits 1 0 0 0 0 Weights -128 +64 +32 +16 +8 Value = -128 + 2*1 + 1*1 = -128 +3 = -125D 0 +4 1 +2 1 +1 So 1000 0011B = -125D Exercise: Convert the 2’s complement numbers 1000 0111B and 1000 1111B to decimal. Comp 1001: IT & Architecture - Joe Carthy 19 Signed Numbers: 2’s Complement • Example 2: The 2’s complement number 1111 1111B Bits 1 1 1 1 Weights -128 +64 +32 +16 Value = -128 + 64 + 32 +16 + 8 +4 + 2 _+1 = -128 +127 = -1D 1 +8 1 +4 1 +2 1 +1 • In 2’s complement each number has a unique representation i.e. the negative representation of a number uses a completely different bit pattern than its positive counterpart. • In any number system: +x - x = 0 Example: +1 - 1 = 0 In 2’s complement: 0000 0001B 1111 1111B -----------------0000 0000B Comp 1001: IT & Architecture - Joe Carthy 20 Signed Numbers: 2’s Complement • 2’s Complement Arithmetic • • In 2’s Complement, we do not need subtraction to compute x - y We simply add -y to x to get the result. • This makes it easier to design the hardware to implement 2’s arithmetic • It much more complicated with signed magnitude e.g to compute +2 - 6 we must always subtract the smaller number from the larger one and then take the sign of the larger number. • Quick Conversion to/from 2’s Complement • Use the rule: Flip the bits and Add 1 Comp 1001: IT & Architecture - Joe Carthy 21 Signed Numbers: 2’s Complement • Quick Conversion to/from 2’s Complement • Use the rule: Flip the bits and Add 1 • Example 1 Convert 2’s complement number 1111 1111B to decimal • Step 1: Flip the bits: Change 1’s (complement of 1 is 0; complement of 0 is 1) to 0’s and change all 0’s to 1’s • 1111 1111B => 0000 0000B • Step 2: Add 1 • 0000 0000B + 1B => 0000 0001B => 1D Remember the sign bit was 1 => negative • So 1111 1111B => -1D Comp 1001: IT & Architecture - Joe Carthy 22 Signed Numbers: 2’s Complement • Example 2: Convert -1D to 2’s complement • First convert 1D to binary => 0000 0001B • Step 1: Flip the bits • 0000 0001B => 1111 1110B • Step 2: Add 1 • 1111 1110B + 1B => 1111 1111B => -1D => 1111 1111B • • • Exercise: Convert the following 2’s complement numbers to decimal: 1111 1110; 1000 0000; 100 0001; 1111 0000 Decimal to 2’s complement: -128 ; -65; -2 Comp 1001: IT & Architecture - Joe Carthy 23 • 1000 0000B (i.e. -128) is the largest negative 8-bit 2’s complement number • 0111 1111 (127) is the largest positive 8-bit 2’s complement number • 256 numbers can be represented using 8-bit two’s complement numbers from -128 to 127. • There is only one representation for zero. The table below lists the decimal equivalents of some 8-bit 2’s complement and unsigned binary numbers. Bit Patte rn 0000 0000 0000 0001 0000 0010 Unsigne d 0 1 2 0111 1110 0111 1111 1000 0000 1000 0001 1111 1110 1111 1111 126 127 128 129 254 255 2's C om ple m e nt 0 1 2 126 127 -128 -127 -2 -1 Comp 1001: IT & Architecture - Joe Carthy 24 Number Range and Overflow • The range of numbers (called the number range) that can be stored in a given number of bits is important. • Given an 8-bit number, we can represent – unsigned numbers in the range 0 to 255 (0 to 28-1) and – two’s complement numbers in the range -128 to +127 (-27 to 27). • Given a 16-bit number, we can represent – unsigned numbers in the range 0 to 65,535 (0 to 216 -1) and – two’s complement numbers in the range -32768 to 32767 (-215 to 215-1). • In general given an n-bit number, we can represent – unsigned numbers in the range 0 to 2n -1 and – two’s complement numbers in the range -2n-1 to 2n-1 -1 • Exercise: What is the number range of 4-bit, 10-bit, 20-bit, 30-bit and 32-bit numbers ? Comp 1001: IT & Architecture - Joe Carthy 25 Number Range and Overflow • The magnitude of an unsigned number doubles for every bit added • • • • • • • • • • • • • • 10 bits can represent 1024 numbers (1K) 11 bits => 2048 numbers (2K) 12 bits => 4096 numbers (4K) …. 16 bits => 64K numbers .. 20 bits => 220 => 1 Mb 21 bits => 2 Mb .. 24 bit => 16Mb .. 30 bits => 230 => 1 Gb 31 bits => 2Gb 32 bits => 4 Gb Comp 1001: IT & Architecture - Joe Carthy 26 Number of bits in Memory Address • The maximum amount of memory that a processor can access by the number of bits that the processor uses to represent a memory address. • This determines the maximum memory address that can be accessed i.e. is a limit on the maximum amount of RAM a computer can use • • For example, a processor that uses 16-bit addresses will only be able to access up to 65,536 memory locations (64Kb), with addresses from 0 to 65,535. • A 20-bit address allows up to 220 (1Mb) memory locations to be accessed • A 24-bit address allows up to 16Mb (224 bytes) of RAM to be accessed • A 30-bit address allows up to 1Gb (230 bytes) of RAM to be accessed • A 32-bit address allows up to 1Gb (230 bytes) of RAM to be accessed • • Most PCs now use 32-bit addresses. Original PC (1981) used 20-bit addresses. Early Macintoshs used 24-bit addresses. Comp 1001: IT & Architecture - Joe Carthy is determined 27 Review • Hexadecimal: 16 digits: 0 to 9 and A to F. Easy to convert to binary • Signed Numbers: Signed Magnitude and 2’s Complement • Sign bit: MSB 1 => negative • 2 Complement: Flip the bits and add 1. • Number range is important • Given an n-bit number, we can represent – unsigned numbers in the range 0 to 2n -1 and – two’s complement numbers in the range -2n-1 to 2n-1 -1. • A 20-bit address allows up to 220 (1Mb) memory locations to be accessed • A 30-bit address allows up to 1Gb (230 bytes) of RAM to be accessed • A 32-bit address allows up to 1Gb (230 bytes) of RAM to be accessed Comp 1001: IT & Architecture - Joe Carthy 28