Principles of Computer Architecture

  

Principles of Computer Architecture

Miles Murdocca and Vincent Heuring

Chapter Contents

  2.1 Introduction

  2.2 Fixed Point Numbers

  2.3 Floating Point Numbers

  

2.4 Case Study: Patriot Missile Defense Failure Caused by Loss of

Precision

  2.5 Character Codes

  

Fixed Point Numbers

  • • Using only two digits of precision for signed base 10 numbers, the

  

range (interval between lowest and highest numbers) is

[-99, +99] and the precision (distance between successive num- bers) is 1. • The maximum error, which is the difference between the value of a real number and the closest representable number, is 1/2 the pre- cision. For this case, the error is 1/2 1 = 0.5.

  ×

  • • If we choose a = 70, b = 40, and c = -30, then a + (b + c) = 80 (which is correct) but (a + b) + c = -30 which is incorrect. The problem is

  

that (a + b) is +110 for this example, which exceeds the range of

  • +99, and so only the rightmost two digits (+10) are retained in the intermediate result. This is a problem that we need to keep in

    mind when representing real numbers in a finite representation.

  • • The base, or radix of a number system defines the range of pos-

    sible values that a digit may have: 0 – 9 for decimal; 0,1 for binary.
  • • The general form for determining the decimal value of a number is given by: Example: 541.25

  

Weighted Position Code

  10 = 5 ×

   10

  2 + 4 ×

   10

  1 + 1 ×

   10 + 2 ×

   10 -1 + 5 ×

   10 -2 = (500)

  • + (5/100)

  10 + (40)

  10 + (1)

  10 + (2/10)

  

10

  10 = (541.25)

  10

  

Base Conversion with the Remainder

Method

  • • Example: Convert 23.375

  10 to base 2. Start by converting the inte- ger portion: 23/2 =

  11 R

  

1

11/2 =

  5 R

  

1

5/2 =

  2 R

  

1

2/2 =

  1 R 1/2 = R

  

1

Integer Remainder Least significant bit Most significant bit (23)

  10 = (10111)

  2

  

Base Conversion with the Multiplica-

tion Method

  • • Now, convert the fraction:

  Most significant bit .375 2 =

  0.75 ×

  .75 2 =

  1.5 ×

  .5 2 =

  1.0 ×

  Least significant bit (.375) = (.011)

  10

  2 • Putting it all together, 23.375 = 10111.011 .

  10

  2

  

Nonterminating Base 2 Fraction

  • • We can’t always convert a terminating base 10 fraction into an equivalent terminating base 2 fraction:

  .2 .4 .8 .6 .2 .

  . .

  0.4

  0.8

  1.6

  1.2

  0.4 = = = = =

  2

  2

  2

  2

  2 × × × × ×

  9 A B C D E F

  13

  4

  5

  6

  7

  8

  9

  10

  11

  12

  14

  2

  15 Hexadecimal (base 16)

  1

  2

  3

  4

  5

  6

  7

  8

  3

  1

  

Base 2, 8, 10, 16 Number Systems

  3

  10 to base 3, using 3 as the divisor for the remain- der method (instead of 2). Result is 112

  3 Binary (base 2)

  1

  10

  11 100 101 110 111 1000

  1001 1010 1011 1100 1101 1110 1111 Octal

  (base 8)

  1

  2

  4

  17 Decimal (base 10)

  5

  6

  7

  10

  11

  12

  13

  14

  15

  16

  • • Example: Show a column for ternary (base 3). As an extension of that, convert 14

  

More on Base Conversions

  • • Converting among power-of-2 bases is particularly simple: 1011 = (10 )(11 ) = 23

  2

  2

  2

  4 23 = (2 )(3 ) = (10 )(11 ) = 1011

  4

  4

  4

  2

  2

  

2

101010 = (101 )(010 ) = 52

  2

  2

  2

  8 01101101 = (0110 )(1101 ) = 6D

  2

  2

  2

  16

  • • How many bits should be used for each base 4, 8, etc., digit? For

  1

base 2, in which 2 = 2 , the exponent is 1 and so one bit is used

  2 for each base 2 digit. For base 4, in which 4 = 2 , the exponent is 2, so so two bits are used for each base 4 digit. Likewise, for base

  3

  

4

8 and base 16, 8 = 2 and 16 = 2 , and so 3 bits and 4 bits are used for base 8 and base 16 digits, respectively.

  • • This simple binary addition example provides background for the

    signed number representations to follow.

  • 1
  • 1
  • 1

  10

  1

  1

  1 1 +

  1

  1

  1

  1

  1 1 +

  • Sum Carry out Carry in 1 +

  10 (90)

  10 (214)

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

  1 Example: Carry Addend: A Augend: B Sum 0 1 1 1 1 1 0 0

  1 1 +

  1

  1

  Operands

  

Binary Addition

  1

  • (124)

  

Signed Fixed Point Numbers

  

8

• For an 8-bit number, there are 2 = 256 possible bit patterns.

  These bit patterns can represent negative numbers if we choose to assign bit patterns to numbers in this way. We can assign half of the bit patterns to negative numbers and half of the bit patterns to positive numbers. • Four signed representations we will cover are: Signed Magnitude One’s Complement Two’s Complement Excess (Biased)

  

Signed Magnitude

  • • Also know as “sign and magnitude,” the leftmost bit is the sign (0 = positive, 1 = negative) and the remaining bits are the magnitude. • Example: +25

  10 = 00011001

  2 -25

  10 = 10011001

  2 • Two representations for zero: +0 = 00000000

  2 , -0 = 10000000

  2 . • Largest number is +127, smallest number is -127

  10 , using an 8-bit representation.

  

One’s Complement

  • • The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by subtracting each bit from 2 (essentially, complementing each bit from 0 to 1 or from 1 to 0). This goes both ways: converting positive numbers to negative numbers, and con- verting negative numbers to positive numbers. • Example: +25 = 00011001

  10

  2 -25 = 11100110

  10

  2 • Two representations for zero: +0 = 00000000 , -0 = 11111111 .

  2

  2

  • • Largest number is +127 , smallest number is -127 , using an 8-

  10 10 bit representation.

  

Two’s Complement

  • • The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by adding 1 to the one’s complement nega- tive. This goes both ways, converting between positive and nega- tive numbers. • Example (recall that -25 in one’s complement is 11100110 ):

  10 2 +25 = 00011001

  10

  2 -25 = 11100111

  10

  2 • One representation for zero: +0 = 00000000 , -0 = 00000000 .

  2

  2

  • • Largest number is +127 , smallest number is -128 , using an 8-

  10 10 bit representation.

  

Excess (Biased)

• The leftmost bit is the sign (usually 1 = positive, 0 = negative).

  

Positive and negative representations of a number are obtained

by adding a bias to the two’s complement representation. This

goes both ways, converting between positive and negative num- bers. The effect is that numerically smaller numbers have smaller bit patterns, simplifying comparisons for floating point exponents. • Example (excess 128 “adds” 128 to the two’s complement ver- sion, ignoring any carry out of the most significant bit) : +12 = 10001100

  10

  2 -12 = 01110100

  10

  2 • One representation for zero: +0 = 10000000 , -0 = 10000000 .

  2

  2

  • • Largest number is +127 , smallest number is -128 , using an 8-

  10 10 bit representation.

  • • Each binary coded decimal digit is composed of 4 bits.

  1 0 0 1 (9)

  (–301)

  10

  1 0 0 1 (9)

  10

  0 1 1 0 (6)

  10

  10

  1 0 0 0 (8)

  1 0 0 1 (9)

  10

  (–301)

  10 Nine’s complement

  Ten’s complement Nine’s and ten’s complement (a)

  (b) (c)

  10 in BCD: 0000 0111 1001 • Example: Represent -079

  10

  10

  10 in BCD: 1001 0010 0001. This is ob-

tained by first subtracting each digit of 079 from 9 to obtain the

nine’s complement, so 999 - 079 = 920. Adding 1 produces the

ten’s complement: 920 + 1 = 921. Converting each base 10 digit of 921 to BCD produces 1001 0010 0001.

  10

  

BCD Representations in Nine’s and

Ten’s Complement

  0 0 0 0 (0)

  10

  0 0 1 1 (3)

  10

  0 0 0 0 (0)

  0 0 0 1 (1)

  1 0 0 1 (9)

  10

  (+301)

  10

  1 0 0 1 (9)

  10

  0 1 1 0 (6)

  10

  • • Example: Represent +079

  

Base 10 Floating Point Numbers

  • • Floating point numbers allow very large and very small numbers

    to be represented using only a few digits, at the expense of preci- sion. The precision is primarily determined by the number of dig- its in the fraction (or significand, which has integer and fractional

    parts), and the range is primarily determined by the number of

    digits in the exponent.

  23 • Example (+6.023 10 ): ×

  Position of decimal point .

  • 2

  3

  

6

  2

  3 Sign Significand Exponent (two digits) (four digits)

  

Normalization

  • • The base 10 number 254 can be represented in floating point form

    as 254

   10 , or equivalently as: ×

  1

  25.4 10 , or ×

  2

  2.54 10 , or ×

  3 .254 10 , or ×

  4 .0254 10 , or × infinitely many other ways, which creates problems when making comparisons, with so many representations of the same number. • Floating point numbers are usually normalized, in which the radix point is located in only one possible position for a given number.

  • • Usually, but not always, the normalized representation places the

    radix point immediately to the left of the leftmost, nonzero digit in

  3 the fraction, as in: .254 10 .

  ×

  

Floating Point Example

  3 • Represent .254 10 in a normalized base 8 floating point format × with a sign bit, followed by a 3-bit excess 4 exponent, followed by four base 8 digits. • Step #1: Convert to the target base.

  3 .254 10 = 254 . Using the remainder method, we find that 254 ×

  10 10 = 376 8 :

  × 254/8 = 31 R 6 31/8 = 3 R 7 3/8 = 0 R 3

  3 • Step #2: Normalize: 376 8 = .376 8 .

  × ×

  • • Step #3: Fill in the bit fields, with a positive sign (sign bit = 0), an exponent of 3 + 4 = 7 (excess 4), and 4-digit fraction = .3760:

  

0 111 . 011 111 110 000

  

Error, Range, and Precision

  • • In the previous example, we have the base b = 8, the number of significant digits (not bits!) in the fraction s = 4, the largest expo- nent value (not bit pattern) M = 3, and the smallest exponent value m = -4.
  • • In the previous example, there is no explicit representation of 0,

    but there needs to be a special bit pattern reserved for 0 other-

    wise there would be no way to represent 0 without violating the normalization rule. We will assume a bit pattern of 0 000 000 000 000 000 represents 0.
  • • Using

  b, s, M, and m, we would like to characterize this floating point representation in terms of the largest positive representable

number, the smallest (nonzero) positive representable number,

the smallest gap between two successive numbers, the largest

gap between two successive numbers, and the total number of

numbers that can be represented.

  

Error, Range, and Precision (cont’)

3 -4 M -s • Largest representable number: b (1 - b ) = 8 (1 - 8 )

  × ×

  • -1 -4 - 1 -5 m • Smallest representable number: = 8

   8 b b × =

  3 - 4 -1 M -s • Largest gap: b b = 8 = 8 ×

  • -4 - 4 -8 m -s • Smallest gap: = 8 = 8 b b

  ×

  

Error, Range, and Precision (cont’)

A B C D E

s

  • 1

  1 2 × ((M - m) + 1) × (b - 1) × b + The number First digit Remaining

of exponents of fraction digits of

  Sign bit Zero fraction

  • • Number of representable numbers: There are 5 components: (A)

    sign bit; for each number except 0 for this case, there is both a

    positive and negative version; (B) ( M - m) + 1 exponents; (C) b - 1

    values for the first digit (0 is disallowed for the first normalized

  s-1 digit); (D) values for each of the b s-1 remaining digits, plus (E) a special representation for 0. For this example, the 5 components 4-1 result in: 2 ((3 - 4) + 1) (8 - 1) 8 + 1 numbers that can be

  × × × represented. Notice this number must be no greater than the num-

  16

ber of possible bit patterns that can be generated, which is 2 .

Example Floating Point Format

  • –3 –1 –1

  1

  1

  3

  1

  • – 1

  2

  2

  2

  2

  4

  4 b M

  1 = 2 = +1

  • – 1

  s m = 3 = –2

  8

  8

  • • Smallest number is 1/8 • Largest number is 7/4 • Smallest gap is 1/32 • Largest gap is 1/4 • Number of representable numbers is 33.
  • • If we take the ratio of a large gap to a large number, and compare

  • s
  • s
  • s
  • s

  b

  = = b s

  b

  1 – b

  ) b m

  × (1 – b

  1 b

m

  = = b s

  1 – b

  M

  ) b

  (1 – b

  

M

×

  

that to the ratio of a small gap to a small number, then the ratios

are the same: b

  

Gap Size Follows Exponent Size

• The relative error is approximately the same for all numbers.

  • –1 A large number A large gap
  • s
  • s

  1

  • s
  • s
  • –1 A small number A small gap
  • • Example: Convert (9.375

  • • Next, convert from base 10 fixed point to base 2 fixed point: .09375

  2 =

   2 = 1.1 ×

  2 . • Finally, convert to normalized base 2 floating point: .00011 = .00011 ×

  10 = (.00011)

  1.0 • Thus, (.09375)

  2 =

  1.5 .5 ×

  0.75 .75 ×

  

Conversion Example

  × 2 =

  × 2 = 0.375 .375

  × 2 = 0.1875 .1875

  

10

to base 2 scientific notation • Start by converting from base 10 floating point to base 10 fixed

point by moving the decimal point two positions to the left, which

corresponds to the -2 exponent: .09375.

   10 -2 )

  ×

   2 -4

IEEE-754 Floating Point Formats

  32 bits Single 8 bits 23 bits precision

  Exponent Fraction Sign (1 bit)

  64 bits Double 11 bits

  52 bits precision Exponent

  Fraction

  1000 0100 101 0000 0000 0000 0000 0000 (b) −

  

IEEE-754 Examples

(a)

Bit Pattern

  Sign Exponent Fraction

  • 1.101

  ×

  2

  1.01011 ×

  126 1 0000 0001 010 1100 0000 0000 0000 0000 (c)

  • 1.0

  ×

  2 127

  1111 1110 000 0000 0000 0000 0000 0000

(d) +0 0000 0000 000 0000 0000 0000 0000 0000

(e)

  − 1 0000 0000 000 0000 0000 0000 0000 0000 (f)

  • ∞ 1111 1111 000 0000 0000 0000 0000 0000 (g)
  • 2

  − 128 0000 0000 010 0000 0000 0000 0000 0000

(h) +NaN 1111 1111 011 0111 0000 0000 0000 0000

  (i)

  − 128 0 011 0111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

  2 −

  • 2

  

IEEE-754 Conversion Example

• Represent -12.625 in single precision IEEE-754 format.

  10 • Step #1: Convert to target base. -12.625 = -1100.101

  10

  2

  3 • Step #2: Normalize. -1100.101 = -1.100101

   2 ×

  2

  2 • Step #3: Fill in bit fields. Sign is negative, so sign bit is 1. Expo- nent is in excess 127 (not excess 128!), so exponent is repre- sented as the unsigned integer 3 + 127 = 130. Leading 1 of significand is hidden, so final bit pattern is: 1 1000 0010 . 1001 0100 0000 0000 0000 000

  

Effect of Loss of Precision

  • • According to the General Ac-

  Missile counting Office outside of Validation range gate of the U.S. Gov- action ernment, a loss

  Range of precision in

  Gate Area converting 24-

  Search action locates missile bit integers into somewhere

  24-bit floating within beam point numbers was responsible

  Patriot Radar Missile for the failure of

  System a Patriot anti- missile battery.

  • • ASCII is a 7-bit code, com- monly stored in 8-bit bytes. • “A” is at 41

  49 I

  56 V

  55 U

  54 T

  53 S

  52 R

  51 Q

  50 P

  4F O

  4E N

  4D M

  4C L

  4B K

  4A J

  48 H

  58 X

  47 G

  46 F

  45 E

  44 D

  43 C

  42 B

  41 A

  3F ? 40 @

  3E >

  3D =

  3C <

  3B ;

  3A :

  9

  57 W

  59 Y

  8

  7E ~

  Record separator Unit separator

  File separator Group separator

  Cancel End of medium Substitute Escape

  End of transmission block CAN EM SUB ESC FS GS RS US SP DEL

  Negative acknowledge Synchronous idle

  Device control 1 Device control 2 Device control 3 Device control 4

  Shift in Data link escape

  Form feed Carriage return Shift out

  Vertical tab FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB

  Horizontal tab Line feed

  VT Backspace

  Bell BS HT LF

  7F DEL NUL SOH STX ETX EOT ENQ ACK BEL Null Start of heading Start of text End of text End of transmission Enquiry Acknowledge

  7D }

  5A Z

  7C |

  7B {

  7A z

  6F o 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y

  6E n

  6D m

  6C l

  6B k

  6A j

  5F _ 60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g 68 h 69 i

  5E ^

  5D ]

  5C \

  5B [

  39

  38

  

ASCII Character Code

  04 EOT

  11 DC1

  10 DLE

  0F SI

  0E SO

  0D CR

  0C FF

  0B VT

  0A LF

  09 HT

  08 BS

  07 BEL

  06 ACK

  05 ENQ

  03 ETX

  13 DC3

  02 STX

  01 SOH

  00 NUL

  16 = 5.

  16 - 30

  16 : 35

  16 is different than the number 5. To convert character-numbers into number-numbers, sub- tract 30

  16 . • The character “5” at posi- tion 35

  16 = 61

  20

  16 +

  16 . Thus “a” is at 41

  20

  16 . To convert upper case letters to lower case letters, add

  12 DC2

  14 DC4

  7

  2F /

  37

  6

  36

  5

  35

  4

  34

  3

  33

  2

  32

  1

  31

  30

  2D - 2E .

  15 NAK

  2C ´

  2B +

  2A *

  20 SP 21 ! 22 " 23 # 24 $ 25 % 26 & 27 ' 28 ( 29 )

  1F US

  1E RS

  1D GS

  1C FS

  1B ESC

  1A SUB

  19 EM

  18 CAN

  17 ETB

  16 SYN

  Space Delete

EBCDIC Character Code • EBCDIC is an 8-bit code

  15 NL

  7

  77 97 p B7 D7 P F7

  37 EOT 57

  17 IL

  6

  76 96 o B6 D6 O F6

  

56

  36 UC

  16 BS

  5

  75 95 n B5 D5 N F5

  

55

  35 RS

  4

  

58

  74 94 m B4 D4 M F4

  

54

  14 RES 34 PN

  3

  73 93 l B3 D3 L F3

  

53

  33

  13 TM

  2

  72 92 k B2 D2 K F2

  12 DC2 32 SYN 52

  1

  71 91 j B1 D1 J F1

  

51

  18 CAN 38

  78 98 q B8 D8 Q F8

  90 B0 D0 } F0

  7C @

  9F BF DF FF

  7F "

  3F SUB 5F ¬

  1F IUS

  9E BE DE FE

  7E =

  5E ;

  3E

  1E IRS

  9D BD DD FD

  7D '

  3D NAK 5D )

  1D IGS

  9C BC DC FC

  3C DC4 5C .

  8

  1C IFS

  9B BB DB FB

  7B #

  1B CU1 3B CU3 5B $

  9A BA DA FA |

  7A :

  5A !

  3A

  1A CC

  9

  79 99 r B9 D9 R F9

  

59

  39

  19 EM

  11 DC1 31

  STX Start of text RS Reader Stop DC1 Device Control 1 BEL Bell DLE Data Link Escape PF Punch Off DC2 Device Control 2 SP Space BS Backspace DS Digit Select DC4 Device Control 4

  IL Idle ACK Acknowledge PN Punch On CU1 Customer Use 1 NUL Null SOH Start of Heading SM Set Mode CU2 Customer Use 2

  04 PF

  X

  67 87 g A7 x C7 G E7

  07 DEL 27 ESC 47

  66 86 f A6 w C6 F E6 W

  26 ETB 46

  06 LC

  V

  65 85 e A5 v C5 E E5

  

45

  25 LF

  05 HT

  64 84 d A4 u C4 D E4 U

  24 BYP 44

  63 83 c A3 t C3 C E3 T

  28

  

43

  03 ETX 23

  62 82 b A2 s C2 B E2 S

  

42

  02 STX 22 FS

  01 SOH 21 SOS 41 61 / 81 a A1 ~ C1 A E1

  80 A0 C0 { E0 \

  40 SP 60 –

  00 NUL 20 DS

  IUS Interchange Unit Separator

  IRS Interchange Record Separator LF Line Feed UC Upper Case

  VT Vertical Tab

  IGS Interchange Group Separator NL New Line

  ENQ Enquiry LC Lower Case CU3 Customer Use 3 ESC Escape CC Cursor Control SYN Synchronous Idle BYP Bypass CR Carriage Return IFS Interchange File Separator CAN Cancel EM End of Medium EOT End of Transmission RES Restore FF Form Feed ETB End of Transmission Block SI Shift In TM Tape Mark NAK Negative Acknowledge SO Shift Out UC Upper Case SMM Start of Manual Message DEL Delete FS Field Separator SOS Start of Significance SUB Substitute HT Horizontal Tab

  08

  

48

  10 DLE 30 50 &

  4C <

  8F AF CF EF

  6F ?

  2F BEL 4F |

  0F SI

  8E AE CE EE

  6E >

  2E ACK 4E +

  0E SO

  8D AD CD ED

  6D _

  2D ENQ 4D (

  0D CR

  8C AC CC EC

  6C %

  2C

  68 88 h A8 y C8 H E8 Y

  0C FF

  8B AB CB EB

  6B ,

  2B CU2 4B

  0B VT

  8A AA CA EA

  6A ‘

  4A ¢

  0A SMM 2A SM

  I E9 Z

  69 89 i A9 z C9

  

49

  29

  09

  70

Unicode Character Code • Unicode is a 16- bit code

  µ

  00DE

  00DF NBS ¡

  ¢ £ ¤ ¥ §

  ¨ © a

  « ¬

  ± 2 3

  ´

  ¶ ˙ 1 o »

  00DC

  1/4 1/2 3/4

  ¿ Ç

  

  00E0

  00E1

  00E2

  00E3

  00E4

  00DD

  00DB

  00E6

  00D0

  00C9

  00CA

  00CB

  00CC

  00CD

  00CE

  00CF

  00D1

  00DA

  00D2

  00D3

  00D4

  00D5

  00D6

  00D7

  00D8

  00D9

  00E5

  00E7

  00C7

  à á â ã ä å

  00FF À Á Â Ã Ä Å

  Æ Ç È É Ê Ë

  Ì Í Î Ï

  Ñ Ò Ó Ô Õ Ö

  ×

  Ø Ù Ú Û Ü Y y D

  ´ ´

  æ ç è é ê ë

  00FD

  ì í î ï

  ñ ò ó ô õ ö

  ÷

  ø ù ú û ü ÿ P P pp

  CR Carriage return SO Shift out SI Shift in

  FF Form feed SP DEL

  Space Delete

  Ctrl Control SYN Synchronous idle §

  00FE

  00FC

  00E8

  00F1

  00E9

  00EA

  00EB

  00EC

  00ED

  00EE

  00EF

  00F0

  00F2

  00FB

  00F3

  00F4

  00F5

  00F6

  00F7

  00F8

  00F9

  00FA

  00C8

  00C6

  ^ _

  8

  1

  2

  3

  4

  5

  6

  7

  9 : ;

  % &

  < = > ?

  0060 0061 0062 0063 0064 0065 0066 0067 0068 0069

  006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079

  007A 007B 007C 007D 007E 007F @

  A B C D E F G H

  I J K L M N O P Q R S T U

  V W

  X Y Z [ \ ]

  ' ( )

  " # $

  0080 0081 0082 0083 0084 0085 0086 0087 0088 0089

  0028 0029

  0000 0001 0002 0003 0004 0005 0006 0007 0008 0009

  000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019

  LF 002A

  • ´
    • . /
      • – ®

  Null CAN Cancel NUL 0020 SOH 0021 STX 0022 ETX 0023 EOT 0024 ENQ 0025 ACK 0026 BEL 0027

  End of medium Substitute Escape File separator Group separator Record separator Unit separator

  End of transmission block EM SUB ESC FS GS RS US

  Negative acknowledge Non-breaking space

  005A 005B 005C 005D 005E 005F SP !

  DLE Data link escape DC1 DC2 DC3 DC4 NAK NBS ETB

  VT Vertical tab SOH Start of heading EOT End of transmission

  Horizontal tab Line feed

  BS HT LF Backspace

  Enquiry Acknowledge Bell

  End of text ENQ ACK BEL

  001A 001B 001C 001D 001E 001F NUL STX ETX Start of text

  VT 002B FF 002C CR 002D SO 002E SI 002F DLE 0030 DC1 0031 DC2 0032 DC3 0033 DC4 0034 NAK 0035 SYN 0036 ETB 0037 CAN 0038 EM 0039 SUB 003A ESC 003B FS 003C GS 003D RS 003E US 003F BS HT 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049

  004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059

  Device control 1 Device control 2 Device control 3 Device control 4

  008A 008B 008C 008D 008E 008F 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099

  00C5

  00A7

  00C2

  00AE

  00AD

  00AC

  00AB

  00AA

  00A9

  00A8

  00A6

  00C0

  00A5

  00A4

  00A3

  00A2

  00A1

  00A0

  00C3

  00C4

  00C1

  • – ˚

  00B2

  00BD

  | } ~

  DEL

  00AF

  00B0

  009A 009B 009C 009D 009E 009F ` a b c d e f g h i j k l m n o p q r s t u v w x y z {

  00BF Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl

  00BE

  00BC

  00B3

  00BB

  00BA

  00B9

  00B8

  00B7

  00B6

  00B5

  00B4

  00B1