Transcript Example 1
Binary numbers, bits, and
Boolean operations
CSC 2001
Overview
sections 1.1, 1.5
bits
binary (base 2 numbers)
conversion to and from
addition
Boolean logic
“Bits” of information
binary digits
0 or 1
why?
not necessarily intuitive, but…
easy (on/off)
powerful (more in a later lecture)
Number bases
When we see that number 10, we
naturally assume it refers to the value
ten.
So, when we read this…
There are 10 kinds of people in this world:
those who understand binary, and those
who don't.
It might seem a little confusing.
Number bases
In the world today, pretty much everyone
assumes numbers are written in base ten.
Originated in India
This cultural norm is very useful!
But 10 does not necessarily mean ten.
What it really means is…
(1 x n1) + (0 x n0), where n is our base or our
number system.
Base ten (decimal)
So in base ten, we’ll set n = ten.
Thus…
10 =
(1 x n1) + (0 x n0) =
(1 x ten1) + (0 x ten0) =
(1 x ten) + (0 x one) =
ten
Base ten (decimal)
527 =
(5 x ten2) + (2 x ten1) + (7 x ten0) =
(5 x one hundred) + (2 x ten) + (7 x one)
=
five hundred and twenty seven
Other bases
In computer science, we’ll see that base
2, base 8, and base 16 are all useful.
Do we ever work in something other
than base 10 in our everyday life?
Other bases
Base twelve
Sumerian?
smallest number divisible by 2, 3, & 4
time, astrology/calendar, shilling, dozen/gross,
foot
10 (base twelve) = 12 (base ten) [12 + 0]
527 (base twelve) = 751 (base ten) [(5x144) +
(2x12) + (7x1)]
Other bases
Base sixty
Babylonians
smallest number divisible by 2, 3, 4, & 5
time (minutes, seconds),
latitude/longitude, angle/trigonometry
10 (base sixty) = 60 (base ten) [60 + 0]
527 (base sixty) = 18,127 (base ten)
[(5x602) + (2x60) + 7 = (5x3600) + 120 +
7]
Base two (binary)
Just like the other bases…
number abc = (a x two2) + (b x two1) + (c x
two0) = (a x 4) + (b x 2) + (c x 1)
So..
There are 10 kinds of people in this world: those
who understand binary, and those who don't.
means there are 2 kinds of people (1x2 + 0x1)
binary -> decimal practice
11
1010
1000001111
Answers
11 =
(1x2) + (1x1) = 3
1010 =
(1x23)+(0x22)+(1x2)+(0x1) =
8 + 0 + 2 + 0 = 10
1000001111 =
(1x29) + (1x23) + (1x22) + (1x2) + (1x1) =
512 + 8 + 4 + 2 + 1 = 527
Powers of two
20
21
22
23
24
25
=
=
=
=
=
=
1
2
4
8
16
32
26 = 64
27 = 128
28 = 256
29 = 512
210 = 1024
decimal -> binary
Algorithm (p. 42) figure 1.17
Step 1: Divide the value by two and record
the remainder
Step 2: As long as the quotient obtained is
not zero, continue to divide the newest
quotient by two and record the remainder
Step 3: Now that a quotient of zero has been
obtained, the binary representation of the
original value consists of the remainders
written from right to left in the order they
were recorded.
Example 1:
13 (base ten) = ?? (base 2)
Step 1: Divide the value by two and
record the remainder
13/2 = 6 (remainder of 1)
1
Example 1:
13 (base ten) = ?? (base 2)
13/2 = 6 (remainder of 1)
1
Step 2: As long as the quotient obtained is
not zero, continue to divide the newest
quotient by two and record the remainder
6/2 = 3 (remainder of 0)
0
3/2 = 1 (remainder of 1)
1
1/2 = 0 (remainder of 1)
1
Example 1:
13 (base ten) = ?? (base 2)
13/2 = 6 (remainder of 1)
1
6/2 = 3 (remainder of 0)
0
3/2 = 1 (remainder of 1)
1
1/0 = 0 (remainder of 1)
1
Step 3: Now that a quotient of zero has been
obtained, the binary representation of the
original value consists of the remainders
written from right to left in the order they
were recorded.
1 1 0 1
Example 2: 527
527/2 = 263 r 1
263/2 = 131 r 1
131/2 = 65 r 1
65/2 = 32 r 1
32/2 = 16 r 0
16/2 = 8 r 0
8/2 = 4 r 0
4/2 = 2 r 0
2/2 = 1 r 0
1/2 = 0 r 1
1
1
1
1
0
0
0
0
0
1
1 0 0 0 0 01111
In-class practice
37
18
119
Answers
37:
37/2=18r1; 18/2=9r0; 9/2=4r1; 4/2=2r0; 2/2=1r0;
1/2=0r1
100101 = 1 + 4 + 32 = 37
18:
18/2=9r0; 9/2=4r1; 4/2=2r0; 2/2=1r0; 1/2=0r1
10010 = 2 + 16 = 18
119:
119/2=59r1; 59/2=29r1; 29/2=14r1; 14/2=7r0; 7/2=3r1;
3/2=1r1; 1/2=0r1
1110111 = 1 + 2 + 4 + 16 + 32 + 64 = 119
Binary operations
Basic functions of a computer
Arithmetic
Logic
Binary addition
Addition
Useful binary addition facts:
0
1
0
1
+
+
+
+
0
0
1
1
=
=
=
=
0
1
1
10
Example
11 1
101011
+011010
100 01 01
Multiplication and division by 2
Multiply by 2
add a zero on the right side
1 x 10 = 10
10 x 10 = 100
Integer division by 2 (ignore remainder)
drop the rightmost digit
100/10 = 10
1000001111/10 = 100000111
(527/2 = 263)
Binary numbers & logic
As we have seen, 1’s and 0’s can be
used to represent numbers
They can also represent logical values
as well.
True/False (1/0)
George Boole
Logical operations and binary
numbers
Boolean operators
AND
OR
XOR (exclusive or)
NOT
Truth tables
AND
F
T
OR
F
T
F
F
F
F
F
T
T
F
T
T
T
T
XOR
F
T
NOT
F
T
F
F
T
-
T
F
T
T
F
-
-
-
Truth tables (0 = F; 1 = T)
AND
0
1
OR
0
1
0
0
0
0
0
1
1
0
1
1
1
1
XOR
0
1
NOT
0
1
0
0
1
-
1
0
1
1
0
-
-
-
In-class practice
(1 AND 0) OR 1
(1 XOR 0) AND (0 AND 1)
(1 OR ???)
(0 AND ???)
Answers
(1 AND 0) OR 1 =
0 OR 1 = 1
(1 XOR 0) AND (0 AND 1) =
1 AND 0 = 0
(1 OR ???) =
1
(0 AND ???) =
0
Summary
Binary representation and arithmetic and Boolean
logic are fundamental to the way computers
operate.
Am I constantly performing binary conversions
when I program?
Absolutely not (actually hardly ever!)
But understanding it makes me a better programmer.
Am I constantly using Boolean logic when I
program?
Definitely!
A good foundation in logic is very helpful when working
with computers.