Title: Binary Numbers
1Binary Numbers
2Outcome
- Familiar with the binary system
- Binary to Decimal and decimal to binary
- Arithmetic and logic operation in binary system
- Logic gates
- Half Adder and Full Adder
- Hexadecimal system
-
3Reading
- Goldsmiths Study guide
- mathematics for computing
- http//www.math.grin.edu/rebelsky/Courses/152/97F
/Readings/student-binary - http//en.wikipedia.org/wiki/Binary_numeral_system
- http//www.cut-the-knot.org/do_you_know/BinaryHist
ory.shtml - http//www.binarymath.info/
4The Decimal Number System (cont)
- The decimal number system is also known as base
10. The values of the positions are calculated
by taking 10 to some power. - Why is the base 10 for decimal numbers?
- Because we use 10 digits, the digits 0 through 9.
5The Binary Number System base 2
- The decimal number system is a positional number
system with a base 10. - Example 5623
- 5623 5000 600 20 3 5 x 103 6 x102
2 x 101 3 x 100 -
5000 600 20 3
5 x 103 6 x102 2 x 101 3 x 100
6The Binary Number System
- The binary number system is also known as base 2.
The values of the positions are calculated by
taking 2 to some power. - Why is the base 2 for binary numbers?
- Because we use 2 digits, the digits 0 and 1.
7The Decimal Number System - base 10
- The decimal number system is a positional number
system with a base 10. - Example 1011
- 10112 1000 000 10 1 1 x 23 0 x22
1 x 21 1 x 20 1110 -
1000 000 10 1
1 x 23 0x22 1 x 21 1x 20
8Why Bits (Binary Digits)?
- Computers are built using digital circuits
- Inputs and outputs can have only two values
- True (high voltage) or false (low voltage)
- Represented as 1 and 0
- Can represent many kinds of information
- Boolean (true or false)
- Numbers (23, 79, )
- Characters (a, z, ) ASCII, UNICODE
- Pixels
- Sound
- Can manipulate in many ways
- Read and write
- Logical operations
- Arithmetic
9Base 10 and Base 2
- Base 10
- Each digit represents a power of 10
- 5417310 5 x 104 4 x 103 1 x 102 7 x 101
3 x 100 - Base 2
- Each bit represents a power of 2
- 101012 1 x 24 0 x 23 1 x 22 0 x 21 1 x
20 2110
10Converting from Binary to Decimal
- 1 0 0 1 1 0 1 1 X 20 1
- 26 25 24 23 22 21 20 0 X 21 0
- 1 X 22 4
- 20 1 1 X 23 8
- 21 2 0 X 24
0 - 22 4 0 X
25 0 - 23 8 1 X 26 64
- 24 16
7710 - 25 32
- 26 64
11Converting from Binary to Decimal (cont)
- Practice conversions
- Binary Decimal
- 110010
- 100111
- 1010101
-
12Converting From Decimal to Binary (cont)
- Make a list of the binary place values up to the
number being converted. - Perform successive divisions by 2, placing the
remainder of 0 or 1 in each of the positions from
right to left. - Continue until the quotient is zero.
- Example 4210
- 25 24 23 22
21 20 - 32 16 8 4 2
1 - 1 0 1 0 1
0 - 42/2 21 and R 0
- 21/2 10 and R 1
- 10/2 5 and R 0
- 5/2 2 and R 1
- 2/2 1 and R 0
- 1/2 0 and R 1
- 4210 1010102
-
13Example 1710
-
- We repeatedly divide the decimal number by 2
and keep remainders -
- 17/2 8 and R 1
- 8/2 4 and R 0
- 4/2 2 and R 0
- 2/2 1 and R 0
- 1/2 0 and R 1
- The binary number representing 17 is 10001
14Converting From Decimal to Binary (cont)
- Practice conversions
- Decimal Binary
- 59
- 82
- 175
15Fractional Numbers
- Decimal
- 456.7810 4 x 102 5 x 101 6 x 100 7 x
10-18 x 10-2 -
- Binary
- 1011.112 1 x 23 0 x 22 1 x 21 1 x 20 1
x 2-1 1 x 2-2 - 8 0 2
1 1/2 ¼ - 11 0.5 0.25 11.7510
16Binary Fractional to decimal nNumbers (cont)
- Example1
- 1011.112 1 x 23 0 x 22 1 x 21
1 x 20 1 x 2-1 1 x 2-2 - 8 0 2 1
1/2 ¼ - 11 0.5 0.25 11.7510
- Example 2
- 111.112 1 x 22 1 x
21 1 x 20 1 x 2-1 1 x 2-2 - 4 2 1
1/2 ¼ 7.7510 - Example3 11.0112 1 x 21 1 x 20 0x 2-1
1 x 2-2 1 x 2-3 - 2
1 0 ¼ 1/8 3.37510
17Fractional numbers
- Examples 7.7510 (?)2
- Conversion of the integer part same as before
repeated division by 2 - 7 / 2 3 (Q), 1 (R) ? 3 / 2 1 (Q), 1 (R) ?
1 / 2 0 (Q), 1 (R) 710 1112 - Conversion of the fractional part perform a
repeated multiplication by 2 and extract the
integer part of the result - 0.75 x 2 1.50 ? extract 1
- 0.5 x 2 1.0 ? extract 1 0.7510
0.112 - 0.0 ? stop
- ? Combine the results from integer and
fractional part, 7.7510 111.112 - How about choose some of
- Examples try 5.625
4
2
1
1/2
1/4
1/8
0.25
0.125
0.5
18Fractional Numbers (cont.)
- Exercise 3 Convert (0.8125)10 to its binary
form
Solution 0.8125 x 2 1.625 ? extract 1 0.625
x 2 1.25 ? extract 1 0.25 x 2
0.5 ? extract 0 0.5 x 2 1.0
? extract 1 0.0
? stop ? (0.8125)10 (0.1101)2
19Representing fraction with error
- Example Convert (0.6)10 to its binary form
-
0.6 x 2 1.2 ? extract 1 0.2 x 2 0.4 ?
extract 0 0.4 x 2 0.8 ? extract 0 0.8 x 2
1.6 ? extract 1 0.6 x 2 ? (0.6)10
(0.1001 1001 1001 )2
20Fractional Numbers (cont.)
- Errors
- One source of error in the computations is due to
back and forth conversions between decimal and
binary formats - Example (0.6)10 (0.6)10 1.210
- Since (0.6)10 (0.1001 1001 1001 )2
- Lets assume a 8-bit representation (0.6)10 (0
.1001 1001)2 , therefore - 0.6 0.10011001
- 0.6 ? 0.10011001
- 1.00110010
- Lets reconvert to decimal system
- (1.00110010)b 1 x 20 0 x 2-1 0 x 2-2 1 x
2-3 1 x 2-4 0 x 2-5 0 x 2-6 1 x 2-7 0 x
2-8 - 1 1/8 1/16 1/128
1.1953125 - ? Error 1.2 1.1953125
- 0.0046875
21Bits, Bytes, and Words
- A bit is a single binary digit (a 1 or 0).
- A byte is 8 bits
- A word is 32 bits or 4 bytes
- Long word 8 bytes 64 bits
- Quad word 16 bytes 128 bits
- Programming languages use these standard number
of bits when organizing data storage and access.
22Adding Two Integers Base 10
- From right to left, we add each pair of digits
- We write the sum, and add the carry to the next
column
0 1 1 0 0 1 Sum Carry
1 9 8 2 6 4 Sum Carry
2 1
6 1
4 0
0 1
0 1
1 0
23Example
- 10011110
1101111 -
- 111
1101 - --------------------
------------------- - 101 0 0 101 1111100
24Binary subtraction
25Binary subtraction (Cont)
26Binary subtraction (Cont)
27Exercise
- 10010101 - 11011 ?
- 10000001 - 111 ?
28Binary Multiplication
1 0 0 0 two 8ten multiplicand
1 0 0 1 two 9ten multiplier __________
__ 1 0 0 0 0 0 0
0 partial products 0 0 0 0 1 0 0
0 ____________ 1 0 0 1 0 0 0two 72ten
29Binary Division
1 3 Quotient 1 1 / 1 4 7 Divisor
/ Dividend 1 1 3 7 Partial
remainder 3 3 4
Remainder
0 0 0 0 1 1 0 1 1 0 1 1 / 1 0 0 1 0
0 1 1 1 0 1 1 0 0
1 1 1 0 1 0 1 1
0 0 1 1 1 1 1 0 1
1 1 0 0
30Bitwise Operators Shift Left/Right
- Shift left (ltlt) Multiply by powers of 2
- Shift some of bits to the left, filling the
blanks with 0 - Shift right (gtgt) Divide by powers of 2
- Shift some of bits to the right
- For unsigned integer, fill in blanks with 0
- What about signed integers? Varies across
machines - Can vary from one machine to another!
0
0
1
1
0
1
0
0
53
0
0
0
0
1
1
0
1
53gtgt2
31Boolean Algebra to Logic Gates
- Logic circuits are built from components called
logic gates. - The logic gates correspond to Boolean operations
, , . - Binary operations have two inputs, unary has one
OR
AND
NOT
32AND
A
Logic Gate
AB
Truth Table
B
A B AB
0 0 0
0 1 0
1 0 0
1 1 1
A
B
Series Circuit
AB
33OR
A
Logic Gate
AB
Truth Table
B
A B AB
0 0 0
0 1 1
1 0 1
1 1 1
A
Parallel Circuit
B
AB
34NOT
A
Logic Gate (also called an inverter)
A or A
Truth Table
a A
0 1
1 0
35n-input Gates
- Because and are binary operations, they can
be cascaded together to OR or AND multiple inputs.
A
A
B
ABC
ABC
B
C
A
A
B
ABC
ABC
B
C
C
36NAND and NOR Gates
- NAND and NOR gates can greatly simplify circuit
diagrams. As we will see, can you use these
gates wherever you could use AND, OR, and NOT.
A B A?B
0 0 1
0 1 1
1 0 1
1 1 0
NAND
A B A?B
0 0 1
0 1 0
1 0 0
1 1 0
NOR
37XOR and XNOR Gates
- XOR is used to choose between two mutually
exclusive inputs. Unlike OR, XOR is true only
when one input or the other is true, not both.
A B A?B
0 0 0
0 1 1
1 0 1
1 1 0
XOR
A B A B
0 0 1
0 1 0
1 0 0
1 1 1
XNOR
38Binary Sums and Carries
- a b Sum a b Carry
- 0 0 0 0 0 0
- 0 1 1 0 1 0
- 1 0 1 1 0 0
- 1 1 0 1 1 1
XOR
AND
0100 0101
69
0110 0111
103
1010 1100
172
39Design Hardware Bit by Bit
- Adding two bits
- a b half_sum carry_out
- 0 0 0 0
- 0 1 1 0
- 1 0 1 0
- 1 1 0 1
- Half-adder circuit
40Half Adder (1-bit)
A
B
A B S(um) C(arry)
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
S
Half Adder
C
41Half Adder (1-bit)
A B S(um) C(arry)
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
42Full Adder
A
B
Cin A B S(um) Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
S
Full Adder
Carry In (Cin)
Cout
43Full Adder
H.A.
H.A.
44Full Adder
454-bit Ripple Adder using Full Adder
A0
B0
S0
46Working with Large Numbers
- 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 1 ?
- Humans cant work well with binary numbers there
are too many digits to deal with. - Memory addresses and other data can be quite
large. Therefore, we sometimes use the
hexadecimal number system.
47The Hexadecimal Number System
- The hexadecimal number system is also known as
base 16. The values of the positions are
calculated by taking 16 to some power. - Why is the base 16 for hexadecimal numbers ?
- Because we use 16 symbols, the digits 0 and 1 and
the letters A through F.
48The Hexadecimal Number System (cont)
- Binary Decimal Hexadecimal Binary
Decimal Hexadecimal - 0 0 0
1010 10 A - 1 1 1
1011 11 B - 10 2 2
1100 12 C - 11 3 3
1101 13 D - 100 4 4
1110 14 E - 101 5 5
1111 15 F - 110 6 6
- 111 7 7
- 1000 8 8
- 1001 9 9
-
49The Hexadecimal Number System (cont)
- Example of a hexadecimal number and the values of
the positions - 3 C 8 B 0 5 1
- 166 165 164 163 162 161 160
50Example of Equivalent Numbers
- Binary 1 0 1 0 0 0 0 1 0 1 0 0 1 1 12
- Decimal 2064710
- Hexadecimal 50A716
- Notice how the number of digits gets smaller as
the base increases.
51Summary
- Convert binary to decimal
- Decimal to binary
- Binary operation
- Logic gates
- Use of logic gates to perform binary operations
- Half adder
- Full adder
- The need of Hexadecimal Hexadecimal
52Next lecture (Data representation)
- Put this all together
- negative and positive integer representation
- unsigned notation
- Signed notation
- Excess notation
- Tows complement notation
- Floating point representation
- Single and double precision
- Character, colour and sound representation