ECE 645: Lecture 4 Number Representation Part 1 Fixed-Point - - PowerPoint PPT Presentation

ece 645 lecture 4 number representation
SMART_READER_LITE
LIVE PREVIEW

ECE 645: Lecture 4 Number Representation Part 1 Fixed-Point - - PowerPoint PPT Presentation

ECE 645: Lecture 4 Number Representation Part 1 Fixed-Point Representations. Endianness. Required Reading B. Parhami, Computer Arithmetic: Algorithms and Hardware Design Chapter 1, Numbers and Arithmetic, Sections 1.1-1.6 Chapter 2,


slide-1
SLIDE 1

Number Representation

Part 1 Fixed-Point Representations. Endianness. ECE 645: Lecture 4

slide-2
SLIDE 2

Required Reading

  • B. Parhami,

Computer Arithmetic: Algorithms and Hardware Design Chapter 1, Numbers and Arithmetic, Sections 1.1-1.6 Chapter 2, Representing Signed Numbers Endianness, from Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Endianness

slide-3
SLIDE 3

Historical Representations: Ancient Egyptians Numerals (1)

– ~4000 BC – “Sum of Symbols” = (34)10

slide-4
SLIDE 4

Historical Representations: Ancient Egyptians Numerals (2)

What number does this stone carving from Karnak represent?

slide-5
SLIDE 5

Historical Representations: Ancient Egyptians Numerals (3)

slide-6
SLIDE 6

Historical Representations: Ancient Egyptians Numerals (4)

Symbol for a fraction (part): Special symbols for most commonly used fractions:

slide-7
SLIDE 7

– First known positional system – 3100 BC – Radix 60 (sexagesimal) – Two symbols: = 1 = 10

Historical Representations: Ancient Babylonian Numerals (1)

− Integers and fractions were represented identically - a radix point was not written but rather made clear by context

slide-8
SLIDE 8

Babylonian Numerals: Example

1 x 602 20 x 601 56 x 600 = (4,856)10

slide-9
SLIDE 9

Historical Representations: Ancient Babylonian Numerals (2)

Digits from 1 to 59

slide-10
SLIDE 10

Positional Code with Zero

  • Zero Represented by Space

– Partial solution – What about trailing zeros?

  • Babylonians Introduced New Symbol

– or – 4th to 1st Century BC

  • Zero Allows Representation of Fractions

– Fractions started with zero

slide-11
SLIDE 11

Mixed System

  • Roman Numerals

– Sum of all symbols – I=1 V=5 X=10 L=50 C=100 D=500 M=1000 – Difficult to do arithmetic e.g., MCDXLVII

  • IX

?

slide-12
SLIDE 12

Hindu-Arabic Numeral System

Brahmi numerals, India, 400 BC-400 AD

Evolution of numerals in early Europe

slide-13
SLIDE 13

Positional Code Decimal System

– Documented in the 9th century – Position of coefficient determines its value – Coefficient in position is multiplied by radix (10) raised to the power determined by its position, e.g., ( )

4 10 8 10 5 10 6 10 4 856

3 2 1 10

* * * * , + + + =

slide-14
SLIDE 14

Migration of Positional Notation

  • ~750 AD

– Zero spread from India to Arabic countries

  • ~1250 AD

– Zero spread to Europe

  • Importance of Zero

– Ease of arithmetic which leads to improved commerce

slide-15
SLIDE 15

Binary Number System

  • Binary

– Positional number system – Two symbols, B = { 0, 1 } – Easily implemented using switches – Easy to implement in electronic circuitry – Algebra invented by George Boole (1815-1864) allows easy manipulation of symbols

( ) ( )

10 1 2 3 2

5 2 * 1 2 * 2 * 1 2 * 0101 = + + + =

slide-16
SLIDE 16

16

Modern Arithmetic and Number Systems

  • Modern number systems used in digital arithmetic can be

broadly classified as:

  • Fixed-point number representation systems
  • Integers
  • Rational numbers of the form x = a/2f, a is an integer, f is a positive integer
  • Floating-point number representation systems
  • x * bE, where x is a rational number, b the integer base, and E the exponent
  • Note that all digital numbers are eventually coded in bits

{0,1} on a computer

slide-17
SLIDE 17

17

2 4 6 8 10 12 14 16 −2 −4 −6 −8 −10 −12 −14 −16

Unsigned integers Signed-magnitude 3 + 1 fixed-point, xxx.x Signed fraction, ±.xxx 2’s-compl. fraction, x.xxx 2 + 2 floating-point, s × 2 e in [−2, 1], s in [0, 3] 2 + 2 logarithmic (log = xx.xx)

± ±

Number format

log x s e

e fixed point floating point

Encoding Numbers in 4-Bits

slide-18
SLIDE 18

Number system Positional Non-positional Fixed-radix Mixed-radix Conventional Unconventional Signed-digit Non-redundant Redundant Binary Decimal Hexadecimal

Classification of number systems (1)

slide-19
SLIDE 19

Classification of number systems (2)

Positional

wi - weight of the digit xi

Fixed-radix

i k l i i w

x X ⋅ = ∑

− − = 1

i k l i i r

x X ⋅ = ∑

− − = 1

r - radix of the number system

Conventional fixed-radix

i k l i i r

x X ⋅ = ∑

− − = 1

r integer, r > 0 xi ∈ {0, 1, …, r-1}

slide-20
SLIDE 20

Classification of number systems (3)

Unconventional fixed-radix

i k l i i r

x X ⋅ = ∑

− − = 1

xi ∈ {-α, …, β } Non-redundant number of digits = α + β + 1 ≤ r Redundant number of digits = α + β + 1 > r Signed-digit α>0 ⇒ negative digits

slide-21
SLIDE 21

Example of a mixed-radix positional system?

slide-22
SLIDE 22

What is it?

slide-23
SLIDE 23

What is it?

slide-24
SLIDE 24

What is it?

slide-25
SLIDE 25

Samrat Yantra in Jantar Mantar - Jaipur, India

  • The largest sundial in the world
  • 90 feet (27 m) tall
  • Conceived by Maharaja Sawai Raja Jai Singh II
  • Built of local stone and marble 1728-1734
  • The style's horizontal angle is equal the sundial's

geographical latitude 27° north

  • The time is read by observing where the shadow

is sharpest at the time

  • Accuracy of 2 seconds
  • Reconstructed in 1901
slide-26
SLIDE 26

Jantar Mantar - Jaipur, India Original Units of Time

  • 1 day = 60 ghadis (1 ghadi = 24 minutes)
  • 1 ghadi = 60 pals (1 pal = 24 seconds)
  • 1 pal = 4 breaths (1 breath = 6 seconds)

Original weights: 60*60*4 60*4 4 breaths day ghadi pal Current weights: 24*60*60 60*60 60 seconds day hour minute

slide-27
SLIDE 27

Integral and fractional part X = xk-1 xk-2 … x1 x0 . x-1 x-2 … x-l

Integral part Fractional part Radix point

  • NOT stored in the register
  • understood to be in a fixed position

Fixed-point representation

slide-28
SLIDE 28

Fixed-Radix Conventional (Unsigned) Representations

slide-29
SLIDE 29

29

Fixed Point Number system Positional Non-positional Fixed-radix Mixed-radix Conventional (unsigned) Unconventional (signed) Signed-digit Non-redundant Redundant Binary Decimal Hexadecimal

Fixed-Radix Conventional Number Systems

slide-30
SLIDE 30

Range of numbers

Decimal X = (xk-1 xk-2 … x1 x0.x-1 … x-l)10 Xmin Xmax 10k - 10-l Binary Number system X = (xk-1 xk-2 … x1 x0.x-1 … x-l)2 2k - 2-l Conventional fixed-radix X = (xk-1 xk-2 … x1 x0.x-1 … x-l)r rk - r-l ulp = r-l Notation:

unit in the least significant position unit in the last position

slide-31
SLIDE 31

Number of digits

Number system Number of digits in the integer part necessary to cover the range 0..Xmax Decimal Binary Conventional fixed-radix

⎣ ⎦ ⎡ ⎤

) 1 ( log 1 log

max 10 max 10

+ = = + = X X k

⎣ ⎦ ⎡ ⎤

) 1 ( log 1 log

max 2 max 2

+ = = + = X X k

⎣ ⎦ ⎡ ⎤

) 1 ( log 1 log

max max

+ = = + = X X k

r r

slide-32
SLIDE 32

32

Radix Conversion

Option 1) Radix conversion, using arithmetic in the old radix r Convenient when converting from r = 10 or familiar radix

u = w . v = ( xk–1xk–2 . . . x1x0 . x–1x–2 . . . x–l )r Old = ( XK–1XK–2 . . . X1X0 . X–1X–2 . . . X–L )R New

Option 2) Radix conversion, using arithmetic in the new radix R Convenient when converting to R = 10 or familiar radix

Whole part Fractional part Example: (31)eight = (25)ten

From: Parhami, Computer Arithmetic: Algorithms and Hardware Design

Two methods:

slide-33
SLIDE 33

33

Option 1: Arithmetic in old radix r

Converting whole part w: (105)ten = (?)five Repeatedly divide by five Quotient Remainder 105 21 1 4 4 Therefore, (105)ten = (410)five Converting fractional part v: (105.486)ten = (410.?)five Repeatedly multiply by five Whole Part Fraction .486 2 .430 2 .150 .750 3 .750 3 .750 Therefore, (105.486)ten ≅ (410.22033)five

From: Parhami, Computer Arithmetic: Algorithms and Hardware Design

slide-34
SLIDE 34

Radix Conversion of the Integral Part

XI = (xk-1 xk-2 … x1 x0)R = =

R - destination radix

i k i i R

x ⋅

− = 1

= ((...((xk-1 R + xk-2) R + xk-3 ) R + … + x2 ) R + x1 ) R + x0 Quotient Remainder (...((xk-1 R + xk-2) R + xk-3 ) R + … + x2 ) R + x1 x0 ...((xk-1 R + xk-2) R + xk-3 ) R + … + x2 x1 xk-1 xk-2 xk-1

………. ……….

xk-1 R + xk-2 xk-3

slide-35
SLIDE 35

Radix Conversion of the Fractional Part

XF = (. x-1 x-2 … x-l+1 x-l)R = =

R - destination radix

i l i i R

x ⋅

− − = 1

= R-1 (x-1 + R-1 (x-2 + R-1 (…. + R-1 ( x-l+1 + R-1 x-l )….))) Integer part Fractional part x-1 R-1 (x-2 + R-1 (….. + R-1 ( x-l+1 + R-1 x-l)….)) R-1 (….. + R-1 ( x-l+1 + R-1 x-l)….) x-2 x-l+1 R-1 x-l x-l

………. ……….

x-l+2 R-1 ( x-l+1 + R-1 x-l)

slide-36
SLIDE 36

36

Option 2: Arithmetic in new radix R

Converting (22033)five = (?)ten

((((2 × 5) + 2) × 5 + 0) × 5 + 3) × 5 + 3 |-----| : : : : 10 : : : : |-----------| : : : 12 : : : |---------------------| : : 60 : : |-------------------------------| : 303 : |-----------------------------------------|

  • 1518

Converting fractional part v: (410.22033)five = (105.?)ten (0.22033)five × 55 = (22033)five = (1518)ten 1518 / 55 = 1518 / 3125 = 0.48576 Therefore, (410.22033)five = (105.48576)ten

Horner’s rule or formula

From: Parhami, Computer Arithmetic: Algorithms and Hardware Design

slide-37
SLIDE 37

37

Option 2 cont'd: Horner's rule for fractions

Converting fractional part v: (0.22033)five = (?)ten

  • (((((3 / 5) + 3) / 5 + 0) / 5 + 2) / 5 + 2) / 5

|-----| : : : : 0.6 : : : : |-----------| : : : 3.6 : : : |---------------------| : : 0.72 : : |-------------------------------| : 2.144 : |-----------------------------------------| 2.4288 |-----------------------------------------------| 0.48576

Horner’s rule or formula

From: Parhami, Computer Arithmetic: Algorithms and Hardware Design

Horner’s rule is also applicable: Proceed from right to left and use division instead of multiplication

slide-38
SLIDE 38

38

r=bg → b → R=bG 4=22 → 2 → 8=23 (2301.302)4 = (10 110 001. 110 010)2 = (261.62)8

Radix Conversion Shortcut for r=bg, R=bG

  • Trick here is to first convert to a number in radix b, then to R
  • Cluster in groups of 3 (because 23 = 8) moving away from binary point
slide-39
SLIDE 39

Signed Number Representations

slide-40
SLIDE 40

Representations of signed numbers

Signed-magnitude Biased Complement

Radix-complement Diminished-radix complement (Digit complement) Two’s complement One’s complement r=2 r=2

slide-41
SLIDE 41

7 0111 1111 0111 0111 6 0110 1110 0110 0110 5 0101 1101 0101 0101 4 0100 1100 0100 0100 3 0011 1011 0011 0011 2 0010 1010 0010 0010 1 0001 1001 0001 0001 0000 1000 0000 0000

1000 1111

  • 1

1001 0111 1111 1110

  • 2 1010

0110 1110 1101

  • 3

1011 0101 1101 1100

  • 4

1100 0100 1100 1011

  • 5

1101 0011 1011 1010

  • 6

1110 0010 1010 1001

  • 7

1111 0001 1001 1000

  • 8 0000

1000

Signed- magnitude Biased Two’s complement One’s complement

slide-42
SLIDE 42

Signed-magnitude representation of signed numbers

Advantages: Disadvantages:

  • conceptual simplicity
  • symmetric range: -(2k-1-1) .. -(2k-1-1)
  • simple negation
  • addition of numbers with the same sign and with

a different sign handled differently

k-2 k-1

sign magnitude

slide-43
SLIDE 43

Biased (excess-B) representation of signed integers

  • 8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

B = 2k-1, k=4 R(X) = X + B

  • 2k-1 ≤ X ≤ 2k-1-1

X R(X) R

slide-44
SLIDE 44

Signed number X Unsigned Representation R(X) Bit vector (xk-1xk-2...x0.x-1...x-l) Binary mapping Representation mapping

i k l i i

x X R 2 ) (

1

⋅ ∑ =

− − =

Biased representation with radix 2

slide-45
SLIDE 45

Complement Signed Number Representations

slide-46
SLIDE 46

Signed number X Unsigned Representation R(X) Bit vector (xk-1xk-2...x0.x-1...x-l) Binary mapping Representation mapping

i k l i i

x X R 2 ) (

1

⋅ ∑ =

− − =

Complement representations with radix 2

slide-47
SLIDE 47

1 – xi = xi 1 – xi xi xi 1 1 1

Useful dependencies

|X| = X when X ≥ 0

  • X when X < 0
slide-48
SLIDE 48

One’s complement transformation OC(A) = A = 2k – 2-l - A For

i k l i i

A A 2

1

⋅ ∑ =

− − =

≥ 0

0 ≤ OC(A) ≤ 2k – 2-l OC(OC(A)) = A

def

k-1 k-2 ... 0 -1 -2 ... -l

1 1 ... 1 . 1 1 ... 1 – Ak-1 Ak-2 … A0 . A-1 A-2 ... A-l Ak-1 Ak-2 … A0 . A-1 A-2 ... A-l Properties:

slide-49
SLIDE 49

One’s Complement Representation

  • f Signed Numbers

R(X) = X for X > 0 0 or OC(0) for X = 0 OC(|X|) for X < 0 For –(2k-1 – 2-l) ≤ X ≤ 2k-1 – 2-l 0 ≤ R(X) ≤ 2k – 2-l

def

slide-50
SLIDE 50

One’s complement representation of signed integers

  • 8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

X k=4 X>0 X<0 X+2k-1 = 2k-1 - |X| 0, 2k-1

slide-51
SLIDE 51

One’s complement representation of signed numbers

+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15

slide-52
SLIDE 52

Two’s complement transformation (1) A + 2-l = 2k – A for A > 0 For

i k l i i

A A 2

1

⋅ ∑ =

− − =

≥ 0

def

Properties: TC(A) = 0 for A = 0 0 ≤ TC(A) ≤ 2k – 2-l TC(TC(A)) = A 2k – A = 2k – A – 2-l + 2-l = = (2k – 2-l – A)+2-l = A + 2-l

slide-53
SLIDE 53

Two’s complement transformation (2) For

i k l i i

A A 2

1

⋅ ∑ =

− − =

≥ 0 A + 2-l mod 2k = 2k – A mod 2k

def

TC(A) =

slide-54
SLIDE 54

Two’s Complement Representation

  • f Signed Numbers

R(X) = X for X ≥ 0 TC(|X|) for X < 0 For –2k-1 ≤ X ≤ 2k-1 – 2-l 0 ≤ R(X) ≤ 2k – 2-l

def

slide-55
SLIDE 55

Two’s complement representation of signed integers

  • 8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

X k=4 X>0 X<0 X+2k = 2k - |X|

slide-56
SLIDE 56

Two’s complement representation of signed integers

+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15

slide-57
SLIDE 57

Signed-magnitude representation of signed numbers

  • 8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

X k=4 X>0 X<0 | X|+2k-1 = -X+2k-1 0, 2k-1

slide-58
SLIDE 58

Signed-magnitude representation of signed numbers

+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15

slide-59
SLIDE 59

Biased representation of signed numbers

  • 8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

X+B B = 2k-1, k=4 X>0 X<0 X+B B

slide-60
SLIDE 60

Biased representation of signed numbers

+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15

slide-61
SLIDE 61

Arithmetic Operations in Signed Number Representations

slide-62
SLIDE 62

Unsigned addition vs. signed addition

Machine Programmer

0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 0

1 1 1 Unsigned mind Signed mind

128 64 32 16 8 4 2 1

weight carry

X Y S

+ = FA x0 y0 s0 c1 FA x1 y1 s1 c2 FA x2 y2 s2 c3 FA x3 y3 s3 c4 FA x4 y4 s4 c5 FA x5 y5 s5 c6 FA x6 y6 s6 c7 FA x7 y7 s7 c8

slide-63
SLIDE 63

Out of range flags

C = 1 if result > MAX_UNSIGNED or result < 0 0 otherwise

where MAX_UNSIGNED = 28-1 for 8-bit operands 216-1 for 16-bit operands

V = 1 if result > MAX_SIGNED or result < MIN_SIGNED 0 otherwise

where MAX_SIGNED = 27-1 for 8-bit operands 215-1 for 16-bit operands MIN_SIGNED = -27 for 8-bit operands

  • 215 for 16-bit operands

Carry flag - C Overflow flag - V

  • ut-of-range for unsigned numbers
  • ut-of-range for signed numbers
slide-64
SLIDE 64

Overflow for signed numbers

Indication of overflow Positive + Positive = Negative Negative + Negative = Positive Formulas Overflow2’s complement = xk-1 yk-1 sk-1 + xk-1 yk-1 sk-1 = = ck ⊕ ck-1

slide-65
SLIDE 65

Two’s complement representation of signed integers

+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15

slide-66
SLIDE 66

Addition of Signed and Unsigned Numbers

C=1 and V=0 1 1 0 1 -3 1 0 1 1 -5

  • 8 4 2 1

1 1 0 0 0 -8 0 0 1 1 3 0 1 1 0 6

  • 8 4 2 1

1 0 0 1 9≠-7 1 1 0 1 13 1 0 1 1 11

8 4 2 1

1 1 0 0 0 24≠8 C=0 and V=1 0 0 1 1 3 0 1 1 0 6

8 4 2 1

1 0 0 1 9

slide-67
SLIDE 67

Addition of Signed and Unsigned Numbers

C=0 and V=0 0 1 0 1 5 1 0 0 1 -7

  • 8 4 2 1

1 1 1 0 -2 1 1 0 0 -4 1 0 1 1 -5

  • 8 4 2 1

1 0 1 1 1 -9≠-7 0 1 0 1 5 1 0 0 1 9

8 4 2 1

1 1 1 0 14 C=1 and V=1 1 1 0 0 12 1 0 1 1 11

8 4 2 1

1 0 1 1 1 23≠7

slide-68
SLIDE 68

Can replace this with k xor gates

Two's Complement Adder/Subtractor Architecture

slide-69
SLIDE 69

Arithmetic Shift

Two’s complement Sh.L {001012 = +5} = 010102 = +10 Sh.L {110112 = -5} = 101102 = -10 Sh.L {010102 = +10} = 101002 = - 12

  • verflow

Sh.R {001012 = +5} = 000102 = +2 rem 1 Sh.R {110112 = -5} = 111012 = -3 rem 1

Shift left may cause overflow Shift right requires sign extension

slide-70
SLIDE 70

Addition and subtraction

One’s complement

Numbers of the same sign Numbers of the opposite sign 0 0 1 0 2 1 1 1 0 -1

8 4 2 1

1 0 0 0 0 1 0 1 0 -5 1 1 0 1 -2

8 4 2 1

1 0 1 1 1 + 1 1 0 0 0

  • 7

end-arround carry + 0 0 0 1 1 1

Disadvantage: Need another adder after the addition is complete!

slide-71
SLIDE 71

One’s complement representation of signed numbers

+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15

slide-72
SLIDE 72

Addition and subtraction

Signed-magnitude

Numbers of the same sign Numbers of the opposite sign 0 1 0 1 1 11 0 0 1 1 0 6 sign bit magnitude + 0 1 0 0 0 1 17 carry = overflow 1 1 0 1 1 -11 0 0 1 1 0 6 sign bit magnitude + 11 > 6 1 0 1 1 11 0 1 1 0 6 – 0 1 0 1 5 1

slide-73
SLIDE 73
slide-74
SLIDE 74

Signed Number Representations

Summary

slide-75
SLIDE 75

Representing k-bit signed binary numbers

Representation for X>0 Representation for X<0 Representation for 0 Representation Signed- magnitude X 0, 2k-1 2k-1+|X| Biased X+B B X+B Complement X M-|X|=M+X 0, M mod 2k Two’s complement One’s complement X X 2k-|X|= 2k-ulp-|X|= 0, 2k-ulp

typical B=2k-1 or 2k-1-ulp

ulp X +

X

slide-76
SLIDE 76

Value of a number in the signed representations

Representation Value of (xk-1 xk-2 … x1 x0.x-1 … x-l)

Signed- magnitude Biased Two’s complement One’s complement

i k l i i x

x X

k

2 ) 1 (

2

1

⋅ − =

− − =

B x X

i k l i i

− ⋅ = ∑

− − =

2

1 i k l i i k k

x x X 2 2

2 1 1

⋅ + − =

− − = − − i k l i i k k

x ulp x X 2 ) 2 (

2 1 1

⋅ + − − =

− − = − −

slide-77
SLIDE 77

Extending the number of bits of a signed number

xk-1 xk-2 … x1 x0 . x-1 x-2 … x-l yk’-1 yk’-2 … yk yk-1 yk-2 … y1 y0 . y-1 y-2 … y-l y-(l+1) … y-l’ X Y signed-magnitude xk-1 0 0 0 0 0 0 0 xk-2 … x1 x0 . x-1 x-2 … x-l 0 0 0 0 0 0 two’s complement xk-1 xk-1 xk-1 . . .xk-1 xk-2 … x1 x0 . x-1 x-2 … x-l 0 0 0 0 0 0

  • ne’s complement

xk-1 xk-1 xk-1 . . .xk-1 xk-2 … x1 x0 . x-1 x-2 … x-l xk-1 . . . .xk-1 biased xk-2 … x1 x0 . x-1 x-2 … x-l 0 0 0 0 0 0

1 − k

x

. . . xk-1

1 − k

x

slide-78
SLIDE 78

Generalized Complement Representation

slide-79
SLIDE 79

Generalized complement representation

  • f signed integers

M-N > P M ≥ N+P+1

slide-80
SLIDE 80

Generalized complement representation

  • f signed integers
slide-81
SLIDE 81

Little-Endian vs. Big-Endian Representation of Integers

slide-82
SLIDE 82

Little-Endian vs. Big-Endian Representation

A0 B1 C2 D3 E4 F5 67 8916 LSB MSB

MSB = A0 B1 C2 D3 E4 F5 67 LSB = 89

Big-Endian Little-Endian

LSB = 89

MAX

67 F5 E4 D3 C2 B1 MSB = A0 address

slide-83
SLIDE 83

Little-Endian vs. Big-Endian Camps

Big-Endian Little-Endian

MAX

address MSB LSB . . . LSB MSB . . . Motorola 68xx, 680x0 Intel IBM Hewlett-Packard DEC Alpha Internet TCP/IP Sun SuperSPARC

Bi-Endian

Motorola Power PC Silicon Graphics MIPS RS 232 AMD Xilinx MicroBlaze Altera Nios II ARM v.3 and above IA-64

slide-84
SLIDE 84

Origin of the terms

Little-Endian vs. Big-Endian

Jonathan Swift, Gulliver’s Travels

  • A law requiring all citizens of Lilliput to break their soft-eggs

at the little ends only

  • A civil war breaking between the Little Endians and

the Big-Endians, resulting in the Big Endians taking refuge on a nearby island, the kingdom of Blefuscu

  • Satire over holy wars between Protestant Church of England

and the Catholic Church of France

slide-85
SLIDE 85
slide-86
SLIDE 86

Little-Endian vs. Big-Endian Big-Endian Little-Endian

  • easier to determine a sign of

the number

  • easier to compare two numbers
  • easier to divide two numbers
  • easier to print
  • easier addition and multiplication
  • f multiprecision numbers

Advantages and Disadvantages

slide-87
SLIDE 87

Pointers (1)

89 67 F5 E4 D3 C2 B1 A0

Big-Endian Little-Endian

MAX

address int * iptr; (* iptr) = 8967; (* iptr) = 6789; iptr+1

slide-88
SLIDE 88

Pointers (2)

89 67 F5 E4 D3 C2 B1 A0

Big-Endian Little-Endian

MAX

address long int * lptr; (* lptr) = 8967F5E4; (* lptr) = E4F56789; lptr + 1