Documente Academic
Documente Profesional
Documente Cultură
Numerical Overflow Right and Left Shifts Storage Methods Subtraction Ranges
Numerical Overflow
An overflow is when something doesnt fit in a certain space Numeric overflow is when the storage for a calculation is too small to hold the result
For example we have an 8 bits register, if we add two binary numbers and the result turns out to be 9 bits it would not fit in the register
Example
Do we have an overflow?
Numerical Overflow
When we have a numeric overflow we will have an error in our calculation When we have an overflow we would need to remove the extra bit at the start of the number Lets say we had a 7 bit register and the result of a calculation is 11001100 the actual answer would be 1001100
Example
Working
Suppose we have a 4 bit registers. 1. Perform the additions 2. Is there and overflow? 3. What is the actual answer?
1110+ 1111
0101+ 0110
1101+ 0100
Answers
1110+ 1111
11101
0101+ 0110
1011
1101+ 0100
10001
Bit shifting is the process of moving all the bits in a binary number
The right shift would divide the number while the left would multiply it
Right Shift
The right shift is used to perform divisions Hence if we where to perform three right shifts we would be diving the number by 2 three times
For example if we shift 101100112, = 17910 right by three places, we get 000101102 = 2210
179 /2 = 89 90/2 = 44 45/2 = 22
1 1 0 0 1 0 1
1st Shift right
LOST 0 ADDED
0 1 1 0 0 1 0
2nd Shift right
1 0
ANS =
0 0 1 1 0 0 1
Working
Shift the numbers to the right by the number of shifts indicated in the brackets; 1000110 (2) 1110001 (4) 1111000 (1) 01010101 (4) 0000111 (3)
1. 2.
3. 4.
5.
1000110 70
0100011 35 0010001 17
0001110 14 0000111 7 01010101 85 0000111 7 00101010 42 0000011 3 00010101 21 0000001 1 00001010 10 0000000 0 00000101 5
Left Shift
If any bits are lost when shifting left the result is no longer accurate
For example if we shift 011001012, = 10110 left by one place, we get 110010102 = 20210
101 x 2 = 202
0 1 1 0 0 1 0 1
LOST
1st Left Shift
1 1 0 0 1 0 1 0
2nd Left Shift
1 0 0 1 0 1 0 0
Working
Shift the numbers to the left by the number of shifts indicated in the brackets, also state which answers are not correct.
0000110 (4) 1110001 (3) 0011110 (1) 01010101 (2) 0000111 (3)
Change correct answers to decimal to check your answers
1.
2. 3.
4. 5.
0000110 6
0001100 12 0011000 24
1110001
1100010 1000100
0011110 30
0111100 60
0110000 48 1100000 96
Storage Methods
When we have a fixed register we might want to store out binary number in a certain way
The three ways are using; 1. sign and magnitude (first digit is 0 = positive, first digit is1 = negative) 2. ones complement 3. twos complement.
Example 1
Lets say we have a register of 8-bits and we wish to store the number 1410 Since the number is positive, all we need to do is convert it to binary and store it
It would be the same in the three different storage methods, 1410 = 000011102
Example 2
Lets say I have an 8 bit register and want to store -1410 The number now changes since it is negative, we first change it to binary = 000011102
Sign and Magnitude 10001110 Note that the fist digit is 1 because in this
11110001
11110010
twos complement
Working
Convert the following a) Sign and magnitude b) Ones Complement c) Twos Complement
to;
Size of register is indicated in the brackets. 1. 3310 (8) 2. -6010 (9) 3. -4410 (7) 4. 1010 (5) 5. -7410 (10)
Subtraction
Example
22 10 12
10110 01010
Twos Complement
Working
1. 2.
3. 4.
5.
Ranges
A ranges determines the lowest and the highest values which can be represented by a certain register
We will be going through two types of ranges using binary; 1. normal binary 2. twos complement.
Normal Binary
What is the range of numbers which can be represented using 8-bits? Since we have 8 Bits, the maximum value represented in binary is 11111111 and the smallest is 00000000. If we convert these numbers to decimal we end up with: 0 to 255
Example
What is the range of numbers which can be represented using 5-bits? Since we have 5 Bits, the maximum value represented in binary is 11111 and the smallest is 00000. If we convert these numbers to decimal we end up with: 0 to 31
Twos Complement
What is the range of numbers which can be represented using 8-bits in twos complement?
The first number in twos complement identifies the number as a negative number, the highest possible positive number is 011111112 = 12710
To find the smallest number we convert the positive number to negative so in this case -12710.
The range is: -127 to 126 (126 due to the 0)
Example
What is the range of numbers which can be represented using 10-bits in twos complement? 01111111112 = 51110 51110 becomes negative to show the smallest number helps = -51110.
The range is: -511 to 510