Arithmetic operations in binary - PowerPoint PPT Presentation

About This Presentation
Title:

Arithmetic operations in binary

Description:

diminished radix complement is. Note: operation is ... m normalized fraction for radix r = 2. As MSB digit is always 1, no need to explicitly store it ... – PowerPoint PPT presentation

Number of Views:1205
Avg rating:3.0/5.0
Slides: 50
Provided by: elkotc
Category:

less

Transcript and Presenter's Notes

Title: Arithmetic operations in binary


1
Arithmetic operations in binary
  • Addition / subtraction
  • 01011
  • 111
  • ?
  • Method exatly the same as decimal

2
Arithmetic operations in binary
  • Addition
  • X xn xi x0
  • Y yn yi y0
  • __________________
  • di
  • di (xi yi ) mod r carry-in

3
Addition
  • For ( i 0n ) do
  • di (xi yi carry-in) mod r
  • carry-out (xi yi carry-in) div r
  • End for

4
Arithmetic operations in binary
  • Subtraction
  • Can you write an equivalent method (algorithm)
    for subtraction?
  • Algorithm a systematic sequence of
    steps/operations that describes how to solve a
    problem

5
Arithmetic operations in binary
  • Subtraction
  • X xn xi x0
  • ? Y yn yi y0
  • __________________________________________________
    _
  • di
  • For ( i 0n ) do
  • di ( xi ? yi ? bi-1 ) mod r
  • borrow-out ( xi ? yi ? bi-1 ) div r
  • End for

6
Subtraction
7
Arithmetic operations in binary
  • Multiplication
  • For ( i 0n ) do
  • di ( xi ? yi ci-1 ) mod r
  • ci ( xi ? yi ci-1 ) div r
  • End for
  • Is this correct?

8
Negative numbers (4 traditions)
Signed magnitude Radix complement Diminished
radix complement Excess-b (biased)
e.g. n 4, r 10 7216 --gt 9999 - 7216 1
2784 (10s complement) n 4, r 2 0101 --gt
1111 - 0101 1 1011 (2s complement)
9
diminished radix complement is
e.g. n 4, r 10 7216 --gt 9999 - 7216 2783
(9s complement) n 4, r 2 0101 --gt 1111 -
0101 1010 (1s complement)
Note operation is reversible (ignoring
overflow) i.e. complement of complement returns
original pattern (for both radix and diminished
radix forms) for zero and its complement 10s
complement 0000 --gt 9999 1 10000 --gt
0000 9s complement 0000 --gt 9999 --gt 0000
10

Arithmetic with complements n 4 r 2
Excess-8

11
Signed number representations
  • N rn ( rn N ) N
  • ( N N ) mod rn 0
  • Example (n 4)
  • 5 ? 0101
  • -5 ? 1011
  • 10000 ? 24
  • N N mod 24 0
  • N 5 r 10 N 32546
  • N 105 32546 (67454)10

12
Twos complement arithmetic
  • ( an-1, an-2, a0 ) in 2-s complement is
  • Example (n 4)
  • 0101 ? ?0?23 1?22 0?2 1?1 4 1 5
  • 1011 ? ?1?23 0?22 1?2 1?1 ?8 2 1
    ?5
  • Addition/subtraction (n 5)
  • 10 ? 01010
  • 3 ? 00011
  • 01101 ? 13

13
Twos complement arithmetic
  • Addition/subtraction (n 5)
  • 10 ? 01010
  • 7 ? 00111
  • Overflow 10001 ? ?15
  • 15 ? 01010
  • ?13 ? 10011
  • Discard 100010 ? 2

When can overflow happen? Only when both operands
have the same sign and the sign bit of the result
is different.
14
Cyclic representation (n 4, r 2) avoid
discontinuity between 0111 and 1000
Add x move x positions clockwise Subtract
x move x positions counterclockwise move (16 -
x) positions clockwise (i.e. add radix
complement)
15
How to detect discontinuity?
no overflow (in 4-bit register) but, carry into
most significant bit is 1 while carry out is 0
16
Same circuitry signed numbers add subtract
(use 2s complement of subtrahend) Intel
architecture OF (overflow flag) detects
out-of-range result
unsigned numbers same protocol but
discontinuity is now between 0000 and
1111 detect with overflow for
addition lack of overflow for
subtraction Intel uses CF (carry flag) to
detect out-of-range result
17
Codes 4-bit codes for digits 0
through 9 (BCD 8421 weighted) 2421 and Excess-3
are self-complementing (complement bits to get
9s complement representation) Biquinary has two
ranges 01 and 10 one-bit error produces
invalid codeword
18
(No Transcript)
19
Number representation inside computer
  • Integers represented in 2s complement
  • Single precision 32 bits
  • Largest positive integer is 231-1
  • 2,147,483,647
  • Smallest negative integer is -231
  • 2,147,483,648

20
Number representation inside computer
  • Floating point
  • Scientific notation
  • 0.0043271 0.43271?10-2
  • normalized number
  • The digit after the decimal point is ? 0
  • Normalized notation maximizes the use of
    significant digits.

21
Floating point numbers
  • Floating point
  • N (-1)S ? m ? rE
  • S 0 ? positive
  • S 1 ? negative
  • m ? normalized fraction for radix r 2
  • As MSB digit is always 1, no need to explicitly
    store it
  • Called hidden bit ? gives one extra bit of
    precision

S E m
22
Floating point formats
  • IEEE format (-1)S?(1.m)?2E-127
  • DEC format (-1)S?(0.m)?2E-128

23
Floating point formats
  • Different manufacturers used different
    representations

24
Mechanical encoder with sequential sector
numbering At boundaries can get a code
different than either adjacent sector
25
Gray code
26
Gray code algorithm input (binary)
output (Gray code)
e.g. n 3 6 -gt 110 -gt 101 n 4 10 -gt 1010
-gt 1111
27
Representing non-numeric data
  • Code systematic and preferably standardized way
    of using a set of symbols for representing
    information
  • Example BCD (binary coded decimal) for decimal
    s
  • It is a weighted code ? the value of a symbol
    is a weighted sum
  • Extending number of symbols to include alphabetic
    characters
  • EBCDIC (by IBM) Extended BCD Interchange Code
  • ASCII American Standard Code for Information
    Interchange

28
Codes

29
Cyclic codes
  • A circular shift of any code word produces a
    valid code word (maybe the same)
  • Gray code example of a cyclic code
  • Code words for consecutive numbers differ by one
    bit only

30
Ascii, ebcdic codes State codes, e.g.
31
Consequences of binary versus one-hot coding
32
n-cubes of codewords
Hamming distance between x and y is count of
positions where x-bit differs from y-bit Also
equals link count in shortest path from x to y
33
Gray code is path that visits each vertex
exactly once
34
Error-detecting codes
concept choose code words such
that corruption generates a non-code word to
detect single-bit error, code words must
occupy non-adjacent cube vertices
35
Error-correcting codes minimum distance between
code words gt 1
36
Write minimum distance as 2c d 1 bits
gt corrects c-bit errors and detects (c
d)-bit errors Example min distance 4 2(1)
1 1
But also, 4 2(0) 3 1
37
Why? suppose minimum distance is h
c
c
h - 2c
?
d h - 2c -1
pair of closest nodes maximally distant from
left with entering correction zone 2c d 1
2c (h - 2c - 1) 1 h
38
Hamming codes
number bit positions 1, 2, 3, ... n from right to
left bit position is a power of 2 gt check bit
else gt information bit e.g. (n
7) check bits in positions 1, 2, 4 information
bits in positions 3, 5, 6, 7
Create group for each check bit Express check
bit position in binary Group all information
bits whose binary position has a one in same
place e.g. (n 7) check information 1 (001) 3
(011), 5 (101), 7 (111) 2 (010) 3 (011), 6
(110), 7 (111) 4 (100) 5 (101), 6 (110), 7 (111)
39
Code information packets to maintain even parity
in groups e.g. (n 7) packet is 1011 gt
positions 7, 6, 5, 3 7 6 5 4 3 2 1 1 0 1 x 1 x x
Consult group memberships to compute check
bits check information 1 3, 5, 7 gt bit 1 is 1
2 3, 6, 7 gt bit 2 is 0 4 5, 6, 7 gt bit 4
is 0 Code word is 1010101
40
Note Single bit error corrupts one or more
parity groups gt minimum distance gt 1 Two-bit
error in locations x, y corrupts at least one
parity group gt minimum distance gt 2 Three-bit
error (i.e. 1, 4, 5) goes undetected gt minimum
distance 3 3 2(1) 0 1 2(0) 2 1 gt
can correct 1-bit errors or detect errors of
size 1 or 2.
41
Group 8 Group 4 Group 2 Group 1
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
  • Pattern generalizes to longer bit strings
  • Single bit error corrupts one or more parity
    groups gt minimum distance gt 1
  • Consider two-bit error in positions x and y. To
    avoid corrupting all groups -- avoid group 1
    bit 1 (lsb) same for both x and y -- avoid group
    2 bit 2 same for both -- avoid group 4 bit 3
    same for both, etc. -- forces x y
  • So true two-bit error corrupts at least one
    parity group gt min distance gt 2
  • Three-bit error (two msb and lsb) goes
    undetected gt minimum distance 3
  • Conclude process always produces a Hamming code
    with min distance 3

42
Traditional to permute check bits to far
right Used in memory protection schemes
43
Add traditional parity bit (for entire word) to
obtain code with minimum distance 4
44
For minimum distance 4
Number of check bits grows slowly with
information bits
45
Two-dimensional codes (product codes)
min distance is product of row and column
distances for simple parity on each (below) min
distance is 4
46
Scheme for RAID storage CRC is extension of
Hamming codes each disk is separate row column
is disk block (say 512 characters) rows have CRC
on row disk columns have even parity
47
Checksum codes mod-256 sum of info bytes becomes
checksum byte mod-255 sum used in IP
packets m-hot codes (m out of n codes) each
valid codes has m ones in a frame of n bits min
distance is 2 detect all unidirectional
errors bit flips are all 0 to 1 or 1 to 0
48
Serial data transmission (simple) transmit clock
and sync with data (3 lines) (complex) recover
clock and/or sync from data line
49
Serial line codes
NRZ clock recovery except during long sequences
of zeros or ones NRZ1 nonreturn to zero, invert
on one zero gt no change, one gt change
polarity RZ clock recovery except during long
sequences of zero DC balance Bipolar return to
zero (aka alternate mark inversion send one as
1 or -1) Manchester zero gt 0 to 1 transition,
one gt 1 to 0 transition at interval center
Write a Comment
User Comments (0)
About PowerShow.com