You explain things so clearly that my professor can't even make clear in a 3 hour lecture. I was so confused about aspects of digital logic but now I understand after watching some of your videos, thank you so much.
To clarify bit further on what sir mentioned at 05.30, the addition becomes simplified when we assume 5 bit number system (as representing 9 in 2 complement notation needs 5 bits - the 4 bit range is from [-8, +7]) A = 01001 = 9;B = 00100 = 4; Y = A - B = A + (-B) = 01001 + (-00100) = = 01001 + (11100) = [1]00101. In this notation, the overflow bit (in the square bracket) can always be discarded and the sign of the most significant bit shows the sign of the number. 0 means positive and 1 means negative ---- Just as a check, B-A = 00100 - 01001 = 00100 + (-01001) = 00100 + (10111) = 11011 = -(00101) = -5 ---- (i) Check minimum number of bits required (ii) Convert everything into 2s complement notation in those number of bits (iii) Add -------- In this way, overflow only happens when MSB of the two numbers added is the same, and they are of opposite sign to the MSB of the result obtained.
for 3rd problem i think --> (+15) in 5-bit = 01111 so now (10110) -(01111) = 00111 in simple binary substraction means(A-(+B)) and with methoad two means (A+(-B)) you should sum 10110 with (-15) so (10110)+(10001) = 00111 so with two methoad +7 in 5-bit is 00111
The video is very good. I thought I could add some details for the truly nerdy, and for those who have an interest in how computer hardware does binary arithmetic, particularly subtraction. If you are new to binary, I suggest you skip this posting. There needs to be a way to represent negative numbers. There are three common ways: (1) Sign magnitude (2) One's complement (3) Two's complement; this is by far the most common, and the description follows: All of the explanation will be given assuming 4-bit words. Extending the description to 32 bits (or n bits) is left as an exercise for the reader. (LOL, don't you just hate it when instructors say that?) The 4 bits have the weights: -8, +4, +2, and +1. Note: --- Only the left most bit (the sign bit, the most-significant-bit MSB) has a negative weight; All the other bits have positive weights. --- If you set any bit to a 1 (except for the sign bit), the number becomes more positive (or less negative). --- The zero value is represented by 0000 --- All ones, 1111, has the value -1. (Since -8+4+2+1 = -1). To get the negative of a number (that is, to get -N given N), the rule is "complement all the bits and add 0001". First, define the bit-complement operator ~ to be: "Change each 1 to a 0 and each 0 to a 1". Examples: ~0000 = 1111, and ~1111 = 0000 ~0001 = 1110 ~1010 = 0101 Proof: note that N + ~N = 1111 = -1 Example: 0101 + ~0101 = 0101 + 1010 = 1111 = -1 Rearrange: ~N = -1 - N Rearrange: ~N + 1 = -N Finally: -N = ~N + 1 (QED) Examples using the complement+1 negation rule: +1 = 0001; -1 = ~0001 + 1 = 1110 + 1 = 1111 -1 = 1111; +1 = ~1111 + 1 = 0000 + 1 = 0001 +5 = 0101; -5 = ~0101 + 1 = 1010 + 1 = 1011 -5 = 1011; +5 = ~1011 + 1 = 0100 + 1 = 0101 0 = 0000; -0 = ~0000 + 1 = 1111 + 1 = 0000 (Notice: negating 0000 results in 0000.) And finally, negating twice returns the original number, a requirement. Now any two numbers, positive or negative, can be added or subtracted. To subtract a number, first take its negative (using the complement+1 rule given above) and then add. NO "BORROWING" IS EVER NECESSARY. The subtraction method used by hardware inside a computer CPU is: Change the subtraction problem to an addition problem (by negating the subtrahend using the complement+1 rule), then add, propagating the carries right to left. Note that the longer a computer word is, the more carries need to be propagated. The time to propagate the carries is proportional to the length of the word, O(length), which is slow for long words. There are "carry skipping" methods which reduce the carry time to O(log(length)), but these methods are another topic. Addition and subtraction can cause the integer overflow exception: -- If two positive numbers added result in a negative (MSB=1) sum, overflow has occurred. -- If two negative numbers added result in a positive (MSB=0) sum, overflow has occurred. Adding a positive number to a negative number never results in overflow. The negative of 1000 (= -8) results in 1000 and overflow, since the largest positive number is 0111 = +7. In hardware, it is easy to calculate overflow by looking at the carries into and out of the MSB: Overflow = ExclusiveOR(CarryIntoMSB, CarryOutOfMSB). Note that there is always a "strange" number for any of the three number systems: --- Sign magnitude has the number 1000 = 0000 (-0 = +0) since the MSB is the sign and has no value; there is no +8 or -8. --- One's complement has the number 1111 = 0000. Again, -0 = +0, and there is no +8 or -8. --- Two's complement has the number 1000 = -8, but there is no +8; the largest positive number is 0111 = +7. Two's complement has the "strange" number in the most out-of-the-way place, so it rarely causes a problem. The other two systems have the "strange" number at zero, which causes all-to-frequent, and unexpected, computational difficulties.
i was so confused about the subtraction using 2s complement but your video was so excellent that now i able to solve properly.You explain much better than my teacher,Thank You:)
3rd problem You can't represent 1111 (15) in 2's complement just by 4 bits. So, make it 01111 --> 1's complement --> 10000 --> 2's complement --> 10001 Now, A + (-B) = 10110(22) + 10001(-15) = 100111 --> MSB discarded for the same logic --> 00111 (7)
@@theb4stguy332 because A is a 5 bit number and B is a 4 bit number, therefore to convert B into a 5 bit number, we add up the zero to the extreme left
No this method is wrong you have to take direct 2's compliment or else you would get stuck in 2nd problem where also (1110) is 14 so according to your approach (0111) -(1110) taking 2's of 14 will be 10001 Then adding you will get 11001 which is +ve 9 which is wrong ❌ As 0111(7) -1110(14) = -7 not +9
Can you say the answer of the question given below? -8-4=-12. I cannot perform this substraction by using binary 2's compliment Using the method which sir told.... Kindly if you can pls solve it
summary of process is: 1) do 2's complement on the 2nd number. 2) then add 1st number and 2's complement of 2nd number 3) if the result's sign bit is 1, then the result is positive. Ignore the sign bit, we get our answer If the result's sign bit is 0, then the result is negative. Ignore the sign bit, do 2's complement on remaining part. then, we get our answer
Im pretty sure Ex2 is wrong. Using the 2's complement representation, 0110 in binary is equivalent to +6 in decimal, while 1011 in binary is equivalent to -5. So in deicmal number system, the task is to perform the following subtraction: +6 -(-5) = 11.
U said the carry leads to overflow but u add a 4 bit number which doest fall into that range. Sir actually we are dealing with signed numbers so 1001 is a negtive number so we should not guess the number directly and take 2's complement . So 1001 is -7 and 1100 is -4 and subtrating them we will get -3 101 or 1101 right?
S M yeah I was always confused with questions like this one. if u left it as -7 or put it back to +7?? I just looked at the original question. 7 - 14 = -7, hence why I left it in its 2s complement form (1001)
Sir, in previous (last) video you have said that 1's complement was negative form of number but in this you were saying that 2's complement was negative form of a number.... So which one is correct....
0111 + 0010 (2's complement of 1110) --------------------- 1001 ( now as there is no carry the result have to be converted in 2's complement form) ---------------------- hence the 2's complement of 1001 will be +7 i.e 0111. for 3rd question could you explain me ...
@@achchhelalgupta3176 for 3rd ques answer is 00111 B is 01111 2's of B will be 10001 10110 +10001 ------------ 100111(final carry is one ) so neglect 1 answer will 00111
sir aapne last video m kha tha 1's comp. of A is -A and now in this video 2's comp. of A is -A......but 1's and 2's comp. of 6 is not equal explain......
Sir, I am still confused with overflow. Based on your condition for overflow, the example 1 will be indicated no overflow, since x'y'z+xyz'=1'0'0+100'=010+101=0 no overflow, but in your first example, you said it was overflow. Are we supposed to consider the discarded "1" as the sign of result? even though, the discarded "1" is considered as the sign bit of result, it will be like this: 1'0'1+101'=011+100=0+0=0. it is still 0, which is no overflow in terms of your condition for overflow.
At 5:42 you are mistaken, If the sign bit is “0”, this means the number is positive in value. If the sign bit is “1”, then the number is negative in value.
Sir when I substracted -48-23 (-48)+(-23)=-71 11010000 is 2's com.. of 48 11101001 is 2's complement of 23 Adding both we get 1 10111001 so we got carry 1 and is case of overflow and I neglected 1 the answer should be 10111001 which is not equivalent to -71 You said we need to take 2's complement of result when we don't get carry. If we get carry we simply ignore it and that is the answer but here even after neglecting Carry we don't get the answer please help sir I request you
I am having same type of doubt ... Like -8-4 =-12. On performing 2's complement I am getting a carry and if I ignore the carry the ans which I am getting is not the correct ans... So pls if you both get the solution of this problem then pls give a reply
so for example 2, I got the same answer when I subtracted 1 and THEN took the 1's compliment of the result. Is this okay to do or did it just work out in this example? Thanks
Anas Khan The result which was obtained was negative and in its 2's complement form. So, to know the magnitude of the result (in this case +5), you have to perform the 2's complement of it(here -5).
u said in previous lectures that....1 in signed bit indicates negative number....but here u consideres 1 as signed bit represents positive...how ...can any one make me clear??
yeah, Actually in four-bit binary we decide by MSB if MSB is 1 then its negative number but here we are deciding whether it is positive or negative by overflow, which is a different thing, I think now you can understand the difference between both
Vasu Deva Rao no you can't call , this theory is different, if you subtract( 13 )- (4) you will get (11001) in this you can see answer is 9 and overflow and msb is 1 .but being msb 1 you can't call this negative in this theory ;)
8-bit 2s complement binary numbers: 121 - 67 ? Is it overflow? It seems I got an answer 11111111 with discarding 11 .Did you have to ignore any carry bits?
I don’t understand that for the sign bit of 1 is positive and 0 is negative. To my mind, it’s should be the opposite. Would anyone help clarify this situation please???
My suggestion is to forget about one's complement arithmetic. Yes, it is sometimes used, but two's complement is FAR more common. To get the two's complement of a number, change all the 1's to 0's, change all the 0's to 1's, and then add 1. You must always add the 1. This works for both positive and negative integers.
Let me make your lives' easier: Subtraction with Complements The direct method of subtraction taught in elementary schools uses the borrow concept. In this method, we borrow a 1 from a higher significant position when the minuend digit is smaller than the subtrahend digit. The method works well when people perform sub- traction with paper and pencil. However, when subtraction is implemented with digital hardware, the method is less efficient than the method that uses complements. The subtraction of two n‐digit unsigned numbers M - N in base r can be done as follows: 1. Add the minuend M to the r’s complement of the subtrahend N. Mathematically, M+(r^n -N)=M-N+r^n. If M > or = N, the sum will produce an end carry r^n, which can be discarded; what is left is the result M - N. If M
I'm not very experienced with the theory behind the subject but I'm pretty sure it has to do with the fact that when we use 2's complement we split the number of possible combinations into two sides, one side for the positives and one for the negatives. If you imagine it as a circle where 0000 = 0, 0001=1 and so on then if we travel in the opposite direction of the circle we travel along our negative side, IE from 0000 if we go left we get 1111 which is equal to -1 and from there 1110 will be equal to -2 etc. pherricoxide.files.wordpress.com/2008/09/binary_circle2.jpg
You are confusing 2s complement with unsigned numbers. A combination of bits may have different meanings in different number systems (unsigned vs 2s complement) the same way a combination of letters may have different meanings in different languages. A number in 2s complement has two parts, a sign bit and the number itself. It is true that 1011=11 if you were discussing unsigned binary numbers, but for 2s complement recall that the leftmost bit is the sign, so the leading 1 is actually a negative sign and not a number at all.
well done NESO...I have a question and will appreciate if anyone answer it... to perform -7-3 we will do (-7)+(-3) 7 in Binary = 0111 in 2's complement it is -7 = 1 0 0 1 3 in Binary = 0011 in 2's complement it is -3 = + 1 1 0 1 ________ 1 0 1 1 0 NOW WE GET A FINAL CARRY THAT IS 1 THE ANSWER SHOULD BE RIGHT AND IN ITS TRUE FORM..IT SHOULD GIVE US 1010 THAT IS 10....but it is not giving us right ans...help will be much appreciated
I know we get 1010 we get do the 2's complement of 0110...but my confusion is how to know that we need to convert back the ans...in the first example....you didnt convert the answer...in second you did..why we need to convert our ans in my case when we have final carry = 1
When we need to convert our answer back into 2's comp...in your step 3 you said if we get a F.C = 1 we dont need to change answer as it is in true form...but when we do -7-3 we get a F.C...and we need to convert it back in order to cross check
that is why i am asking...i need to cross check to get full marks..9-4 = 5 = 0101 that is correct.... but -7-3 = 0110.....how come we know that answer is correct...??when we convert our answer only if we get F.C = 0.
i dont understand a point. In this video you said that the 2 compliment of a number is his negative. But in the previous video, you said the same thing with 1 compliment! So what is the difference???
I have a doubt regarding example 2.. 6-11 should be -5...but u have shown 1011 as -5...how is this possible??please go through last minute of video and resolve the mistake
Two's complement numbers are the most common way computers implement integer arithmetic. They are used for addition AND subtraction (and multiplication and division) of both positive and negative integers.