I’m currently in the process of writing a column on binary coded decimal (BCD). As part of that column, I’m describing the topic of borrowing when performing subtraction operations.
I actually covered this topic in some detail in the book How Computer’s Do Math that I co-authored with my friend, Alvin Brown (I penned the words, while Alvin created the associated software). One of the things that caught my interest when writing that book was how there are so many different approaches to tackling even rudimentary mathematical operations.
Consider subtraction, for example. I was brought up in the UK where I was taught a certain way of doing things. You can only imagine my surprise when I moved to the USA to discover that they approached this operation in a completely different manner.
Let’s assume we wish to subtract 3,234 from 5,628. Just to make sure we’re all tap-dancing to the same drumbeat, let’s remind ourselves that the number from which another number is to be subtracted is called the minuend from the Latin minuendum, meaning “thing to be diminished” (this would be the value of 5,628 in the examples shown below). By comparison, a number that is to be subtracted from another number is called the subtrahend from the Latin subtrahendum, meaning “to subtract” (this would be the value of 3,234 in the examples shown below).
Let’s start by considering the American way of doing things as illustrated below. We commence by subtracting 4 from 8 in the ones column, which is shown as (a) in the diagram. Well, that wasn’t hard, was it? However, when we move to the tens column, shown as (b) in the diagram, we want to subtract 3 from 2, but 3 is bigger than 2, so we borrow 1 from the hundreds column. As part of this we subtract 1 from the 6 in the hundreds column of the minuend leaving 5, and then we use our borrowed 1 to augment the 2 in the tens column of the minuend to form 12. Thus, our ten’s column now requires us to subtract 3 from 12 leaving 9.
When we reach the hundred’s column, shown as (c) in the diagram, instead of subtracting 2 from 6, we now subtract 2 from 5 leaving 3. Finally, subtracting 3 from 5 in the thousands column, shown as (d) in the diagram, is easy peasy lemon squeezy.
Now, let’s consider the way in which this would have been performed in England when I was a young lad (it’s still taught this way over there, as far as I know) as illustrated below. In this case, when we come to perform our borrow operation, shown as (b) in the diagram, we again augment the 2 in the ten’s column of the minuend with a 1 borrowed from the hundred’s column to form 12. However, rather than subtracting 1 from the 6 in the hundred’s column of the minuend to leave 5, we instead add 1 to the 2 in the hundreds column of the subtrahend to give 3. Thus, when we come to the hundred’s column, shown as (c) in the diagram, we now perform the operation 6 – 3 = 3 (as opposed to 5 – 2 = 3 using the American technique).
The end result is the same, of course, because we’d be in something of a pickle if performing a simple math operation such as an integer subtraction gave conflicting results on the opposite sides of the Atlantic Ocean. The advantage of the American scheme is that it’s more intuitive when it comes to visualizing where the “borrow” comes from; the disadvantage comes in the form of the special case that occurs should you have to borrow (subtract 1) from the next column when that column contains a 0. By comparison, the English approach is slightly less intuitive but there are no special cases.
Just for giggles and grins, why don’t you try performing the calculation shown below as quickly as you can using pen and paper. If you are used to working with the American scheme, then try using the English technique, and vice versa:
The answer, of course, is 60,658,385, but I bet performing this calculation took longer than you expected when using the unfamiliar approach.
I was just chatting with my friend Ufuk Giriş in Turkey, who says he was taught to perform subtraction using what I consider to be the American approach. How about you? Which of these methods were you taught to use, or do you employ yet another technique? If so, it would be great if you could share this with the rest of us in the comments below.