Title: Binary Operations
1Binary Operations
Math/Logical
2Binary Math
3Decimal Addition Example
1) Add 8 7 15 Write down 5, carry 1
Add 3758 to 4657
2) Add 5 5 1 11 Write down 1, carry 1
1
1
1
3) Add 7 6 1 14 Write down 4, carry 1
8
4
1
5
4) Add 3 4 1 8 Write down 8
4Decimal Addition Explanation
- What just happened?
- 1 1 1 (carry)
- 3 7 5 8
- 4 6 5 7
- 8 14 11 15 (sum)
- 10 10 10 (subtract the base)
- 8 4 1 5
- 1 1 1
- 3 7 5 8
- 4 6 5 7
- 8 4 1 5
So when the sum of a column is equal to or
greater than the base, we subtract the base from
the sum, record the difference, and carry one to
the next column to the left.
5Binary Addition Rules
- Rules
- 0 0 0
- 0 1 1
- 1 0 1 (just like in decimal)
- 1 1 210 102 0 with 1 to carry
- 1 1 1 310 112 1 with 1 to carry
6Binary Addition Example 1
Col 1) Add 1 0 1 Write 1
Example 1 Add binary 110111 to 11100
Col 2) Add 1 0 1 Write 1
Col 3) Add 1 1 2 (10 in binary) Write 0,
carry 1
1
1
1
1
Col 4) Add 1 0 1 2 Write 0, carry 1
Col 5) Add 1 1 1 3 (11 in binary)
Write 1, carry 1
1
0
1
0
0
1
1
Col 6) Add 1 1 0 2 Write 0, carry 1
Col 7) Bring down the carried 1 Write 1
7Binary Addition Explanation
In the first two columns, there were no carries.
What is actually happened when we carried in
binary?
In column 3, we add 1 1 2 Since 2 is equal
to the base, subtract the base from the sum and
carry 1.
-
- 1 1 0 1 1 1
- 0 1 1 1 0 0
-
- - .
1
1
1
1
In column 4, we also subtract the base from the
sum and carry 1.
In column 5, we also subtract the base from the
sum and carry 1.
2
2
2
3
In column 6, we also subtract the base from the
sum and carry 1.
2
2
2
2
In column 7, we just bring down the carried 1
1
0
1
0
0
1
1
8Binary Addition Verification
Verification 1101112 ? 5510 0111002
2810 8310 64 32 16 8 4 2
1 1 0 1 0 0 1 1 64 16 2
1 8310
You can always check your answer by converting
the figures to decimal, doing the addition, and
comparing the answers.
1
0
1
0
0
1
1
9Binary Addition Example 2
Verification 1110102 ? 5810 0011112
1510 7310 64 32 16 8 4 2
1 1 0 0 1 0 0 1 64 8 1
7310
Example 2 Add 1111 to 111010.
1
1
1
1
1
1
0
0
1
0
1
0
10Decimal Subtraction Example
- Try to subtract 5 7 ? cant.
- Must borrow 10 from next column.
Subtract 4657 from 8025
Add the borrowed 10 to the original 5. Then
subtract 15 7 8.
- Try to subtract 1 5 ? cant.
- Must borrow 10 from next column.
- But next column is 0, so must go to
- column after next to borrow.
1
7
9
1
1
1
Add the borrowed 10 to the original 0. Now
you can borrow 10 from this column.
8
6
3
3
Add the borrowed 10 to the original 1.. Then
subract 11 5 6
3) Subtract 9 6 3
4) Subtract 7 4 3
11Decimal Subtraction Explanation
8
6
3
3
- So when you cannot subtract, you borrow from the
column to the left. - The amount borrowed is 1 base unit, which in
decimal is 10. - The 10 is added to the original column value,
so you will be able to subtract.
12Binary Subtraction Explanation
- In binary, the base unit is 2
- So when you cannot subtract, you borrow from the
column to the left. - The amount borrowed is 2.
- The 2 is added to the original column value, so
you will be able to subtract.
13Binary Subtraction Example 1
Col 1) Subtract 1 0 1
Col 2) Subtract 1 0 1
Example 1 Subtract binary 11100 from 110011
Col 3) Try to subtract 0 1 ? cant. Must
borrow 2 from next column. But next column
is 0, so must go to column after next to
borrow.
1
2
Add the borrowed 2 to the 0 on the right.
Now you can borrow from this
column (leaving 1 remaining).
0
0
2
2
Add the borrowed 2 to the original
0. Then subtract 2 1 1
Col 4) Subtract 1 1 0
Col 5) Try to subtract 0 1 ? cant. Must
borrow from next column.
1
1
0
1
1
Add the borrowed 2 to the remaining 0. Then
subtract 2 1 1
Col 6) Remaining leading 0 can be ignored.
14Binary Subtraction Verification
Verification 1100112 ? 5110 -
111002 - 2810 2310 64 32 16
8 4 2 1 1 0 1 1 1
16 4 2 1 2310
Subtract binary 11100 from 110011
1
2
0
0
2
2
1
1
0
1
1
15Binary SubtractionExample 2
Verification 1010012 ? 4110 -
101002 - 2010 2110 64 32 16
8 4 2 1 1 0 1 0 1
16 4 1 2110
Example 2 Subtract binary 10100 from 101001
2
0
0
2
1
1
0
1
0
16Logical, Shift, and Rotate Operations
17Logical, Shift and Rotate Operations
- A particular bit, or set of bits, within the
byte can be set to 1 or 0, depending on
conditions encountered during the execution of a
program. - When so used, these bits are often called
"flags". - Frequently, the programmer must manipulate these
individual bits - an activity sometimes known as
"bit twiddling". - The logical, shift, and rotate operations
provide the means for manipulating the bits.
18Logical OR Rules
- OR Operations
- OR Results in 1 if either or both of the operands
are 1. - Â
- OR Table
- 0 OR 0 0
- 0 OR 1 1
- 1 OR 0 1
- 1 OR 1 1
19Logical OR Operation
- To perform the OR operation, take one column at
a time and perform the OR operation using the OR
table. - Ex 1 1 0 0 1 0 0 1 1
- OR 0 0 0 0 1 1 1 1
- 1 0 0 1 1 1 1 1
20Logical OR Examples
Ex 2 1 1 0 0 1 0 0 1 OR 0 0 0 0 1 0
1 0 1 1 0 0 1 0 1 1
- Ex 3 0 1 1 1
- OR 0 0 1 0 0 1 1 1
21Logical XOR Rules
- XOR Operations
-
- The exclusive OR. Similar to OR except that it
now gives 0 when both its operands are 1. - Rules.
- 0 XOR 0 0
- 0 XOR 1 1
- 1 XOR 0 1
- 1 XOR 1 0
22Logical XOR Examples
- Ex 1 1 0 0 1 1 0 0 1
- XOR 0 0 0 0 1 1 1 1
- 1 0 0 1 0 1 1 0
Ex 2 0 1 1 1 XOR 0 0 1 0
0 1 0 1
23Logical AND Rules
- AND Operations
- AND yields 1 only if both its operands are 1.
- Rules.
- 0 AND 0 0
- 0 AND 1 0
- 1 AND 0 0
- 1 AND 1 1
- Â
24Logical AND Examples
- Â Ex 1 1 1 0 1 0 0 1 1
- AND 0 0 0 0 1 1 1 1
0 0 0 0 0 0 1 1
- Â Ex 2 0 1 1 1
- AND 1 0 0 1
- 0 0 0 1
25Logical NOT
- NOT Operations
- NOT is a separate operator for flipping the bits.
- Rules.
- NOT 0 1
- NOT 1 0 Â
Example. NOT 1 0 1 0 0 1 0 1
26Shift and Rotate operations
- Whereas logical operations allow the changing of
bit values in place, - SHIFT and ROTATE operations allow bits to be
moved left or right without changing their
values.
27Shift Left operation
- SHL
- SHL (shift left) shifts each bit one place to
the left. The original leftmost bit is lost and
a 0 is shifted into the rightmost position. - Ex 1. SHL 1 1 0 1
-
0
1 1 0 1
1 0 1 0
- Ex 2. SHL 1 1 0 0
- 1 0 0 0
28Shift Left - Multiple Bits
- SHL bits means to shift left times
- Ex 1 SHL 3 1 0 0 1 1 1 0 0
-
1 0 0 1 1 1 0 0
0 0 0
1 1 1 0 0 0 0 0
Ex 2 SHL 2 1 1 1 0 0 1 1 0 1 0 0
1 1 0 0 0
29Shift Right operation
- SHR
- SHR (shift right) shifts each bit one place to
the right. The original rightmost bit is lost
and a 0 is shifted into the leftmost position. - Ex 1. SHR 1 0 1 1
0 1 0 1 1
0 1 0 1
Ex 2. SHR 0 0 1 1 0 0 0 1
30Shift Right Multiple Bits
- SHR bits means to shift right times
- Ex 1 SHR 3 1 0 0 1 1 1 0 0
- 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0 1 1
Ex 2 SHR 2 1 1 1 0 0 1 1 0 0 0
1 1 1 0 0 1
31Arithmetic Shift Right operation
- ASR (retains rightmost sign bit)
- Shifts each bit one place to the right. The
original rightmost bit is lost and a the value of
the most significant bit (leftmost bit) is
shifted into the new leftmost position. - Ex 1. ASR 1 0 1 1
Ex 2. ASR 0 0 1 1 0 0 0 1
32Arithmetic Shift Right Multiple Bits
- ASR bits means to arithmetic shift right
times - Ex 1 ASR 3 1 0 0 1 1 1 0 0
- 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1
Ex 2 ASR 2 0 1 1 0 0 1 1 0 0 0
0 1 1 0 0 1
33Rotate Left operation
- Â ROL
- ROL (rotate left) shifts each bit one place to
the left. The original leftmost bit is shifted
into the rightmost position. No bits are lost. - Ex 1. ROL 1 1 0 1
-
1 0 1
1
 Ex 2. ROL 1 1 0 0 1 0 0 1
34Rotate Left Multiple Bits
- ROL bits means to rotate left times
- Ex 1 ROL 3 1 0 0 1 1 1 0 0
- 1 1 1 0 0 1 0 0
Ex 2 ROL 2 1 1 1 0 0 1 1 0 1 0 0
1 1 0 1 1
35Rotate Right operation
- Â ROR
- ROR (rotate right) shifts each bit one place to
the right. The original rightmost bit is shifted
into the leftmost position. No bits are lost. - Ex 1. ROR 1 0 1 1
-
1 0 1
1
- Â Ex 2. ROR 0 0 1 1
- 1 0 0 1
36Rotate Right Multiple Bits
- ROR bits means to rotate right times
- Ex 1 ROR 3 1 0 0 1 1 1 0 0
- 1 0 0 1 0 0 1 1
Ex 2 ROR 2 1 1 1 0 0 1 1 0 1 0 1
1 1 0 0 1