EE109 Signed Systems and Arithmetic

EE109 Signed Systems and Arithmetic

11.1 Unit 11 Signed Representation Systems Binary Arithmetic 11.2 BINARY REPRESENTATION SYSTEMS REVIEW 11.3 Interpreting Binary Strings • Given a string of 1’s and 0’s, you need to know the representation system being used, before you can understand the value of those 1’s and 0’s. • Information (value) = Bits + Context (System) 01000001 = ? Unsigned Binary system ASCII BCD System system 6510 ‘A’ASCII 41BCD 11.4 Binary Representation Systems • Integer Systems • Codes – Unsigned – Text • Unsigned (Normal) binary • ASCII / Unicode – Signed – Decimal Codes • Signed Magnitude • BCD (Binary Coded Decimal) • 2’s complement / (8421 Code) • Excess-N* • 1’s complement* • Floating Point* – For very large and small (fractional) numbers * = Not fully covered in this class 11.5 Signed Magnitude 2’s Complement System SIGNED SYSTEMS 11.6 Unsigned and Signed • Normal (unsigned) binary can only represent positive numbers – All place values are positive • To represent BOTH positive and negative numbers we must use the available binary codes differently, some for the positive values and others for the negative values – We call these signed representations 11.7 Signed Number Representation • 2 Primary Systems – Signed Magnitude – Two’s Complement (most widely used for integer representation) 11.8 Signed numbers • All systems used to represent negative numbers split the possible binary combinations in 0000 1111 0001 half (half for positive numbers / 1110 0010 half for negative numbers) 1101 0011 • In both signed magnitude and 1100 - + 0100 2’s complement, positive and 1011 0101 negative numbers are 1010 0110 1001 0111 separated using the MSB 1000 – MSB=1 means negative – MSB=0 means positive 11.9 Signed Magnitude System • Use binary place values but now MSB represents the sign (1 if negative, 0 if positive) Bit Bit Bit Bit 4-bit 3 2 1 0 0 to 15 Unsigned 8 4 2 1 Bit Bit Bit Bit 4-bit Signed 3 2 1 0 Magnitude -7 to +7 +/- 4 2 1 Bit Bit Bit Bit Bit Bit Bit Bit 8-bit Signed 7 6 5 4 3 2 1 0 Magnitude -127 to +127 +/- 64 32 16 8 4 2 1 11.10 Signed Magnitude Examples 1 1 0 1 = -5 4-bit Signed +/- 4 2 1 Magnitude 0 0 1 1 = +3 Notice that +3 in signed magnitude is the same +/- 4 2 1 as in the unsigned 1 1 1 1 = -7 system +/- 4 2 1 1 0 0 1 0 0 1 1 = -19 +/- 64 32 16 8 4 2 1 8-bit Signed Magnitude 0 0 0 1 1 0 0 1 = +25 +/- 64 32 16 8 4 2 1 Important: Positive numbers have the same representation in signed magnitude as in normal unsigned binary 11.11 Signed Magnitude Range • Given n bits… – MSB is sign – Other n-1 bits = normal unsigned place values • Range with n-1 unsigned bits = [0 to 2n-1-1] Range with n-bits of Signed Magnitude [ -(2n-1 –1) to +(2n-1–1)] 11.12 Disadvantages of Signed Magnitude 1. Wastes a combination to represent -0 0000 = 1000 = 010 2. Addition and subtraction algorithms for signed magnitude are different than unsigned binary (we’d like them to be the same to use same HW) 4 6 - 6 - 4 Swap & make res. - negative 11.13 2’s Complement System • Normal binary place values except MSB has negative weight – MSB of 1 = -2n-1 Bit Bit Bit Bit 4-bit 3 2 1 0 0 to 15 Unsigned 8 4 2 1 Bit Bit Bit Bit 4-bit 3 2 1 0 2’s complement -8 to +7 -8 4 2 1 Bit Bit Bit Bit Bit Bit Bit Bit 8-bit 7 6 5 4 3 2 1 0 2’s complement -128 to +127 -128 64 32 16 8 4 2 1 11.14 2’s Complement Examples 1 0 1 1 = -5 4-bit -8 4 2 1 2’s complement 0 0 1 1 = +3 Notice that +3 in 2’s comp. is the same as -8 4 2 1 in the unsigned system 1 1 1 1 = -1 -8 4 2 1 1 0 0 0 0 0 0 1 = -127 8-bit -128 64 32 16 8 4 2 1 2’s complement 0 0 0 1 1 0 0 1 = +25 -128 64 32 16 8 4 2 1 Important: Positive numbers have the same representation in 2’s complement as in normal unsigned binary 11.15 2’s Complement Range • Given n bits… – Max positive value = 011…11 • Includes all n-1 positive place values – Max negative value = 100…00 • Includes only the negative MSB place value Range with n-bits of 2’s complement [ -2n-1 to +2n-1–1] – Side note – What decimal value is 111…11? • -110 11.16 Comparison of Systems 0 -7 +1 Signed 0000 -6 1111 0001 +2 0 Mag. 1110 -1 +1 0010 -5 -2 +2 +3 1101 -3 0011 2’s comp. +3 -4 1100 -4 +4 0100 +4 -5 +5 -3 1011 -6 0101 1010 +6 +5 -7 +7 0110 -2 1001 -8 0111 +6 -1 1000 -0 +7 11.17 Unsigned and Signed Variables • In C, unsigned variables use unsigned binary (normal power-of-2 place values) to represent numbers unsigned char x = 147; 1 0 0 1 0 0 1 1 = +147 128 64 32 16 8 4 2 1 • In C, signed variables use the 2’s complement system (Neg. MSB weight) to represent numbers char x = -109; 1 0 0 1 0 0 1 1 = -109 -128 64 32 16 8 4 2 1 11.18 IMPORTANT NOTE • All computer systems use the 2's complement system to represent signed integers! • So from now on, if we say an integer is signed, we are actually saying it uses the 2's complement system unless otherwise specified – We will not use "signed magnitude" unless explicitly indicated 11.19 Zero and Sign Extension • Extension is the process of increasing the number of bits used to represent a number without changing its value Unsigned = Zero Extension (Always add leading 0’s): 111011 = 00111011 Increase a 6-bit number to 8-bit number by zero extending 2’s complement = Sign Extension (Replicate sign bit): pos. 011010 = 00011010 Sign bit is just repeated as many times as necessary neg. 110011 = 11110011 11.20 Zero and Sign Truncation • Truncation is the process of decreasing the number of bits used to represent a number without changing its value Unsigned = Zero Truncation (Remove leading 0’s): Decrease an 8-bit number to 6-bit number by truncating 0’s. Can’t 00111011 = 111011 remove a ‘1’ because value is changed 2’s complement = Sign Truncation (Remove copies of sign bit): pos. 00011010 = 011010 Any copies of the MSB can be removed without changing the numbers value. Be careful not to neg. 11110011 = 10011 change the sign by cutting off ALL the sign bits. 11.21 Data Representation • In C/C++ variables can be of different types and sizes – Integer Types (signed and unsigned) C Type Bytes Bits ATmega328 [unsigned] char 1 8 byte [unsigned] short [int] 2 16 word [unsigned] long [int] 4 32 -1 [unsigned] long long [int] 8 64 -1 int ?2 ?2 ?2 1Can emulate but has no single-instruction support 2Varies by compiler/machine (avr-gcc: int = 2 bytes, g++ for x86: int = 4-bytes) – Floating Point Types C Type Bytes Bits ATmega328 float 4 32 N/A1 double 8 64 N/A1 11.22 ARITHMETIC 11.23 Binary Arithmetic • Can perform all arithmetic operations (+,-,*,÷) on binary numbers • Can use same methods as in decimal – Still use carries and borrows, etc. – Only now we carry when sum is 2 or more rather than 10 or more (decimal) – We borrow 2’s not 10’s from other columns • Easiest method is to add bits in your head in decimal (1+1 = 2) then convert the answer to binary (210 = 102) 11.24 Binary Addition • In decimal addition we carry when the sum is 10 or more • In binary addition we carry when the sum is 2 or more • Add bits in binary to produce a sum bit and a carry bit 1 0 0 1 1 + 0 + 1 + 0 + 1 00 01 01 10 no need sum bit no need sum bit no need sum bit carry 1 sum bit to carry to carry to carry into next column of bits 11.25 Binary Addition & Subtraction 1 1 1 0 0 0 1 1 1(7) 1 10 1 10 (10) + 0 0 1 1(3) - 0 1 0 1 (5) 1 0 1 0(10) 0 1 0 1 (5) 8 4 2 1 8 4 2 1 11.26 Binary Addition 1 2 0 10 0 0 0110 (6) 0110 (6) 1 + 1 + 0111 (7) + 0111 (7) + 1 01 1101 (13) 1101 (13) 10 carry bit sum bit carry bit sum bit 3 110 1 110 1 4 0110 (6) 0 0110 (6) 1 + 0111 (7) + 0 + 0111 (7) + 1 1101 (13) 01 1101 (13) 11 carry bit sum bit carry bit sum bit 11.27 Hexadecimal Arithmetic • Same style of operations – Carry when sum is 16 or more, etc. 1 1 13+5 = 18 = 1 2 4 D16 10 16 16 1 + B 516 1+4+11 = 1610 = 1 016 16 1 1 0 216 11.28 "Taking the 2's complement" SUBTRACTION THE EASY WAY 11.29 Taking the Negative • Given a number in signed magnitude or 2’s complement how do we find its negative (i.e. -1 * X) – Signed Magnitude: Flip the sign bit • 0110 = +6 => 1110 = -6 – 2’s complement: “Take the 2’s complement” • 0110 = +6 => -6 = 1010 • Operation defined as: 1.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    54 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us