Binary numbers.

advertisement
Binary, Octal and
Hexadecimal
The number bases used in
computers
Copyright 2005 Curt Hill
T-Shirt
• There are 10 kinds of people:
• Those that understand binary
• Those who don’t
Copyright 2005 Curt Hill
Binary
• Binary is a base two number system
• It is widely used because of
electronics
• A switch is a two value device
• Binary uses two values for each digit
• Thus computer memory and storage
is usually in binary
• Before dealing with binary we
should review what we already
know: decimal
Copyright 2005 Curt Hill
Decimal
• What are the characteristics of
decimal system?
• Ten occurs twice:
– Number of distinct digits
– The power that each place value digit is
raised
• So what does 8245 mean?
Copyright 2005 Curt Hill
Decimal numbers
8245
Ten possible digits 0-9
All places raised to a power of ten
5×
1
4 × 10
2
2 × 10
8 × 103
0
10
=
5
=
40
= 200
= 8000
Copyright 2005 Curt Hill
Binary is Similar
• There are two possible digits 0 and 1
• All places are raised to a power of 2
• The arithmetic fact tables are much
smaller
• The representation of a number is
much bulkier
Copyright 2005 Curt Hill
Binary numbers
10110
0×
1 × 21
2
1×2
0 × 23
1 × 24
0
2
= 0
= 2
= 4
= 0
= 16
Five or six digits of binary is just two of decimal
Copyright 2005 Curt Hill
22
Converting binary to decimal
1. Have a variable, call it T, which will contain the
powers of two. Initialize it to 1.
2. Have a variable, call it D, which will contain the
decimal number. Initialize it to 0.
3. Position yourself to the right-most digit of the
binary number.
4. While there are still digits to the left of the
current one do steps 5 - 8.
5. If the digit in the current position is 1
6.
Then add the value of T to D
7. Double T.
8. Move the current position one digit to the left.
Copyright 2005 Curt Hill
More Examples
• What is 1010110?
• Starting at the right:
– 0 + 2 + 4 + 0 + 16 + 0 + 64 = 86
• What is 1110011?
• Starting at the right:
– 1 + 2 + 0 + 0 + 16 + 32 + 64 = 115
• What is 11101010?
• Starting at the right:
– 0 + 2 + 0 + 8 + 0 + 32 + 64 + 128 = 234
Copyright 2005 Curt Hill
Decimal to Binary
• Somewhat uglier but still managable
• The process starts with decimal
number and subtracts successively
smaller power of two from it
• If it can be subtracted produce a 1
otherwise a zero
Copyright 2005 Curt Hill
Decimal Conversion Example
• Start with 50
• The largest power of 2 less than this is 32
(25)
• The binary number is 1xxxxx
• Subtracting 50 – 32 gives 18
• Now subtract 16 to get 11xxxx and 2
• No 8s or 4s can be subtracted giving
1100xx
• Subtract 2 – 2 giving 11001x and 0
• No 1s can be subtracted giving 110010
Copyright 2005 Curt Hill
Decimal to Binary Again
150
-128
22
-16
6
-4
2
-2
0
Starting number Any 128s?
Yes. Subtract, place a one.
Any 64s?
No. Place a zero.
Any 32s?
No. Place a zero.
Any 16s? Yes. Subtract, place a one.
Any 8s?
No. Place a zero.
Any 4s?
Yes. Subtract, place a one.
Yes. Subtract, place a one.
Any 2s?
Any 1s?
No. Place a zero.
1
___
0
__
0
__
1
__
0 __
1 __
1 __
0
__
128 64 32 16 8 4 2 1
Copyright 2005 Curt Hill
Decimal Conversion Algorithm
1. Have a variable, call it D, which is
initialized to the value of the decimal
number needing conversion.
2. Have another variable, call it T, that is
initialized to the largest power of two
that is smaller than D.
3. While D > 0 do steps 4 - 8.
4.
If D >= T
5.
Then subtract T from D
6.
Write a 1
7.
Else write a 0
8.
Divide T by 2
Copyright 2005 Curt Hill
Binary Arithmetic
• Similar to decimal but the fact tables
are smaller
• Carrying, borrowing etc. is same
Decimal Addition
Fact Table
0
1
2
3
4
5
0 1 2 3 4
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
…
5 6 7 8 9
5 6 7 8 9
6 7 8 9 10
7 8 9 10 11
8 9 10 11 12
9 10 11 12 13
Copyright 2005 Curt Hill
Binary Addition
Fact Table
0 1
0 0 1
1 1 10
Binary Addition
1
1
1
0111011
0110010
1 1 01 1 01
If we convert to decimal does it sum the same?
Copyright 2005 Curt Hill
Other bases
• Binary has some problems, the
largest of which is that it is very
bulky
• Decimal from binary is not an easy
conversion
– It also obscures structure
• Most manufacturers use another
power of two base to show things
– Octal – base 8 = 23
– Hexadecimal – base 16 = 24
Copyright 2005 Curt Hill
Octal
• Base 8 has 8 digits, 0 – 7 and every
place is raised to a power of 8
• Conversion to and from binary is
way too easy
– Partition into groups of 3 bits from right
to left
– Convert the three bits to octal
• Preferred by certain manufacturers
such as DEC and Intel
Copyright 2005 Curt Hill
Binary – Octal Conversion
Start with binary
0110111001011101
Partition (right to
left) in groups
of 3
Write digits
0110111001011101
0
6
7
1
3
How easy is that?
Conversion of octal to binary is the reverse
Copyright 2005 Curt Hill
5
Hexadecimal
• Base 16 has 16 digits, 0 – 9, A-F and
every place is raised to a power of
16
– A=10, B=11, C=12, D=13, E=14, F=15
• Conversion to and from binary is
also easy
– Partition into groups of 4 bits
– Convert the four bits to hexadecimal
• Preferred by certain manufacturers
such as IBM and Burroughs
Copyright 2005 Curt Hill
Binary – Hexadecimal
Conversion
Start with binary
0110111001011101
Partition (right to
left) in groups
of 4
Write digits
0110111001011101
6
E
5
D
How easy is that?
Conversion of hexadecimal to binary is the reverse
Copyright 2005 Curt Hill
Some Numbers
Binary
Octal
Decimal
Hex
00111011
73
59
3B
01100001
141
97
61
01110111
167
112
77
10111000
270
184
B8
11001001
311
201
C9
11101111
357
239
EF
11111101
375
253
FD
Copyright 2005 Curt Hill
Download