why is C incorrect? addition of any two nibbles such as 1000 1000 --------- 0000 Will generate a final carry as 1 0000, which will require the addition of 0110 as 1 0110 to make it correct.
We don’t add correction factor when final carry is generated.
Ref : https://www.includehelp.com/basics/binary-coded-decimal-bcd-code-and-its-addition.aspx
@palashbehra5 Bhai, see the last example on that website. Image adding feature isn’t enabled while commenting. So, I will add it as an answer. Do let me know in case any doubt arises. I will help as per my knowledge :)
The example which you are asking for : 1000 + 1000 to which in decimal is 8 + 8 .. toh generally we get : 8 + 8 =16, then while performing BCD we should get the same too. 1000 + 1000 = 0001 0000. Now, we add 0110 to second term 0000 + 0110 = 0110. 0001 0110 is 16 which is correct. If the sum is greater than then add carry to the term. In your example, sum of 8 + 8 is 16, which is greater than 9 so we need to add 6 to the term which is sending the carry to other term which would be 0000 here, on adding 0110 to which we get 16 as correct result. So, only A and B are correct.
Yes @palashbehra5 you are right. I am sorry for the confusion
Turns out it was from an nptel assignment, and a and b are the correct options.
I Believe, the third option is incorrect as it “maybe” doesn't really mean anything. In the case of 1000 1000 -------- 0000 Can be interpreted as 0000 1000 0000 1000 -------------- 0001 0000 And then adding correction factor, which now falls in the 2nd case.
64.3k questions
77.9k answers
244k comments
80.0k users