Survey

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Survey

Document related concepts

Transcript

Binary Representation Binary Representation for Numbers Assume 4-bit numbers 5 as an integer 0101 -5 as an integer How? 5.0 as a real number How? What about 5.5? Sign Bit Reserve the most-significant bit to indicate sign Consider integers in 4 bits Most-significant bit is sign: 0 is positive, 1 is negative The 3 remaining bits is magnitude 0010 = 2 1010 = -2 How many possible combinations for 4 bits? How many unique integers using this scheme? Two’s Complement Advantages # of combinations of bits = # of unique integers Addition is “natural” Convert to two’s complement (and vice versa) 1. invert the bits 2. add one 3. ignore the extra carry bit if present Consider 4-bit numbers 0010 [2] -> 1101 -> 1110 [-2] Addition 0010 [2] + 1110 [-2] 0000 [ignoring the final carry—extra bit] 0011 [3] + 1110 [-2] 0001 [1] 1110 [-2] + 1101 [-3] 1011 [-5] Range of Two’s Complement 4-bit numbers Largest positive: 0111 (binary) => 7 (decimal) Smallest negative: 1000 (binary) => -8 (decimal) # of unique integers = # of bit combinations = 16 n bits ? Binary Real Numbers … 5.5 101.1 5.25 101.01 5.125 101.001 5.75 101.11 23 22 21 20 . 2-1 … 8 bits only 25 24 23 22 21 20 2-1 5.5 101.1 -> 000101 10 5.25 101.01 -> 000101 01 5.125 101.001 -> ?? With only 2 places after the point, the precision is .25 What if the point is allowed to move around? 2-2 Floating-point Numbers Decimal 54.3 5.43 x 101 [scientific notation] Binary 101.001 10.1001 x 21 1.01001 x 22 [more correctly: 10.1001 x 101] [more correctly: 1.01001 x 1010] What can we say about the most significant bit? Floating-point Numbers General form: sign 1.mantissa x 2exponent the most significant digit is right before the dot Always 1 [no need to represent it] Exponent in Two’s complement 1.01001 x 22 Sign: 0 (positive) Mantissa: 0100 Exponent: 010 (decimal 2) Java Floating-point Numbers sign exponent Sign: 1 bit [0 is positive] Mantissa: 23 bits in float 52 bits in double Exponent: 8 bits in float 11 bits in double mantissa Imprecision in Floating-Point Numbers Floating-point numbers often are only approximations since they are stored with a finite number of bits. Hence 1.0/3.0 is slightly less than 1/3. 1.0/3.0 + 1.0/3.0 + 1.0/3.0 could be less than 1. www.cs.fit.edu/~pkc/classes/iComputing/FloatEquality.java Abstraction Levels Binary Data Numbers (unsigned, signed [Two’s complement], floating point) Text (ASCII, Unicode) • HTML Color • Image (JPEG) Video (MPEG) Sound (MP3) Instructions Machine language (CPU-dependent) Text (ASCII) Assembly language (CPU-dependent) • High-level language (CPU -independent: Java, C++, FORTRAN)