Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Humans Computer Science 101 Number Systems Computers Binary Numbers (base 2) Two’s complement and sign-magnitude Binary fractions and floating point ASCII codes for characters (A↔65) Decimal Numbers (base 10) Sign-Magnitude (-324) Decimal Fractions (23.27) Letters for text Why binary? Information is stored in computer via voltage levels. Using decimal would require 10 distinct and reliable levels for each digit. This is not feasible with reasonable reliability and financial constraints. Everything in computer is stored using bits: numbers, text, programs, pictures, sounds, videos, ... Decimal: Non-negatives Base 10 Uses decimal digits: 0,1,2,3,4,5,6,7,8,9 Positional System - position gives power Example: 3845 = 3x103 + 8x102 + 4x101 + 5x100 Positions: …543210 Conversions External Internal (Computer) (Human) 25 11001 A 01000001 Humans want to see and enter numbers in decimal. Computers must store and compute with bits. Binary: Non-negatives Base 2 Uses binary digits (bits): 0,1 Positional system Example: 1101 = 1x23 + 1x22 + 0x21 + 1x20 Binary to Decimal Conversion Algorithm: Expand binary number using positional scheme. Perform computation using decimal arithmetic. Example: 110012 ↔ 1x24 + 1x23 + 0x22 + 0x21 + 1x20 = 24 + 23 + 20 = 16 + 8 + 1 = 2510 Decimal to Binary - Algorithm 1 Algorithm: While N ≠ 0 do Set N to N/2 (whole part) Record the remainder (1 or 0) Set A to remainders in reverse order Decimal to binary - Example Example: Convert 2510 to binary N N/2 Rem 25 12 1 12 6 0 6 3 0 3 1 1 1 0 1 0 1210 = 110012 Decimal to Binary - Algorithm 2 Algorithm: Set A to 0 (all bits 0) While N ≠ 0 do Find largest P with 2P ≤ N Set bit in position P of A to 1 Set N to N - 2P Decimal to binary - Example Example: Convert 2510 to binary N Power P A 25 16 4 00010000 9 8 3 00001000 1 1 0 00000001 0 2510 = 000110012 . Binary Addition One bit numbers: + 0 1 0 | 0 1 1 | 1 10 Example 1111 1 110101 (53) + 101101 (45) 1100010 (98) Negatives: Sign-Magnitude With a fixed number of bits, say N The leftmost bit is used to give the sign 0 for positive number 1 for negative number The other N-1 bits are for the magnitude Example: -25 with 8 bit numbers Sign: 1 since negative Magnitude: 11001 for 25 8-bit result: 10011001 Note: This would be 153 as a positive. Overflow In a given type of computer, the size of integers is a fixed number of bits. 16 or 32 bits are popular choices It is possible that addition of two n bit numbers yields a result requiring n+1 bits. Overflow is the term for an operation whose results exceeds the size allowed for a number. Sign-Magnitude: Pros and Cons Pro: Easy to comprehend Easy to convert Con: Addition complicated (expensive) If signs same then … else if positive part larger … Two representations of 0 Negatives: Two’s complement With N bit numbers, to compute negative Invert all the bits Add 1 Example: -25 in 8-bit two’s complement 25 ↔ 00011001 Invert bits: 11100110 Add 1: 1 11100111 2’s Complement: Examples Compute negative of -25 (8-bits) We found -25 to be 11100111 Invert bits: 00011000 Add 1: 00011001 Recognize this as 25 in binary Add -25 and 37 (8-bits) 11100111 (-25) + 00100101 ( 37) (1)00001100 Recognize as 12 2’s Complement: Pros and Cons Con: Not so easy to comprehend Can't just look at a negative number and know what value it is (have to “undo” two'scomplement) Pro: Addition is exactly same as for positives No additional hardware for negatives, and subtraction. Single representation of 0 (0000...) Facts about 2’s Complement Leftmost bit still tells whether number is positive or negative as with sign-magnitude 2’s complement is same as sign magnitude for positives 2’s complement to decimal (examples) Assume 8-bit 2’s complement: X = 11011001 -X = 00100110 + 1 = 00100111 = 32+4+2+1 = 39 (decimal) So, X = -39 X = 01011001 Since X is positive, we have X = 64+16+8+1 = 89 Ranges for N-bit numbers Unsigned (positive) 0000…00 or 0 1111…11 which is 2N-1 For N=8, 0 to 255 Sign-magnitude 1111…11 which is -(2N-1-1) 0111…11 which is 2N-1-1 For N=8, -127 to 127 2’s Complement 1000…00 which is -2N-1 0111…11 which is 2N-1 - 1 For N=8, -128 to 127