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
Precision2.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 ) = 522
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 = 1000110010
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 fractionalparts), 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 - 1values 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 fixedpoint 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