In elementary arithmetic, a carry is a digit that is transferred from one column of digits to another column of more significant digits. It is part of the standard algorithm to add numbers together by starting with the rightmost digits and working to the left. For example, when 6 and 7 are added to make 13, the "3" is written to the same column and the "1" is carried to the left. When used in subtraction the operation is called a borrow.
Carrying makes a few appearances in higher mathematics as well. In computing, carrying is an important function of adder circuits.
A typical example of carry is in the following pencil-and-paper addition:
1 27 + 59 ---- 86
7 + 9 = 16, and the digit 1 is the carry.
The opposite is a borrow, as in
−1 47 − 19 ---- 28
Here, 7 − 9 = −2, so try (10 − 9) + 7 = 8, and the 10 is got by taking ("borrowing") 1 from the next digit to the left. There are two ways in which this is commonly taught:
- The ten is moved from the next digit left, leaving in this example 3 − 1 in the tens column. According to this method, the term "borrow" is a misnomer, since the ten is never paid back.
- The ten is copied from the next digit left, and then 'paid back' by adding it to the subtrahend in the column from which it was 'borrowed', giving in this example 4 − (1 + 1) in the tens column.
The examples and perspective in this section deal primarily with the United States and do not represent a worldwide view of the subject. (January 2009)
Traditionally, carry is taught in the addition of multi-digit numbers in the 2nd or late first year of elementary school. However, since the late 20th century, many widely adopted curricula developed in the United States such as TERC omitted instruction of the traditional carry method in favor of invented arithmetic methods, and methods using coloring, manipulatives, and charts. Such omissions were criticized by such groups as Mathematically Correct, and some states and districts have since abandoned this experiment, though it remains widely used.
When several random numbers of many digits are added, the statistics of the carry digits bears an unexpected connection with Eulerian numbers and the statistics of riffle shuffle permutations.
In abstract algebra, the carry operation for two-digit numbers can be formalized using the language of group cohomology. This viewpoint can be applied to alternative characterizations of the real numbers.
Carry represents one of the basic challenges facing designers and builders of mechanical calculators. They face two basic difficulties: The first one stems from the fact that a carry can require several digits to change: in order to add 1 to 999, the machine has to increment 4 different digits. Another challenge is the fact that the carry can "develop" before the next digit finished the addition operation.
Most mechanical calculators implement carry by executing a separate carry cycle after the addition itself. During the addition, each carry is "signaled" rather than performed, and during the carry cycle, the machine increments the digits above the "triggered" digits. This operation has to be performed sequentially, starting with the ones digit, then the tens, the hundreds, and so on, since adding the carry can generate a new carry in the next digit.
Some machines, notably Pascal's calculator, the second known calculator to be built, and the oldest surviving, use a different method: incrementing the digit from 0 to 9, cocks a mechanical device to store energy, and the next increment, which moves the digit from 9 to 0, releases this energy to increment the next digit by 1. Pascal used weights and gravity in his machine. Another notable machine using similar method is the highly successful 19th century Comptometer, which replaced the weights with springs.
Some innovative machines use continuous transmission: adding 1 to any digit, advances the next one by 1/10 (which in turn advances the next one by 1/100 and so on). Some innovative early calculators, notably Chebyshev calculator from 1870, and a design by Selling, from 1886, used this method, but neither were successful. In the early 1930, Marchant calculator implemented continuous transmission with great success, starting with the aptly named "Silent Speed" calculator. Marchant (later to become SCM Corporation) continued to use and improve it, and made continuous-transmission calculators with unmatched speed, into the late 1960s, to the end of the mechanical calculator era.
When speaking of a digital circuit like an adder, the word carry is used in a similar sense.
In most computers, the carry from the most significant bit of an arithmetic operation (or bit shifted out from a shift operation) is placed in a special carry bit which can be used as a carry-in for multiple precision arithmetic or tested and used to control execution of a computer program. The same carry bit is also generally used to indicate borrows in subtraction, though the bit's meaning is inverted due to the effects of two's complement arithmetic. Normally, a carry bit value of "1" signifies that an addition overflowed the ALU, and must be accounted for when adding data words of lengths greater than that of the CPU. For subtractive operations, two (opposite) conventions are employed as most machines set the carry flag on borrow while some machines (such as the 6502 and the PIC) instead reset the carry flag on borrow (and vice versa).
- Holte, John M. (February 1997), "Carries, Combinatorics, and an Amazing Matrix", The American Mathematical Monthly, 104 (2): 138–149, doi:10.2307/2974981, JSTOR 2974981
- Diaconis, Persi; Fulman, Jason (August 2009), "Carries, shuffling, and symmetric functions", Advances in Applied Mathematics, 43 (2): 176–196, arXiv:0902.0179, doi:10.1016/j.aam.2009.02.002
- Borodin, Alexei; Diaconis, Persi; Fulman, Jason (October 2010), "On adding a list of numbers (and other one-dependent determinantal processes)", Bulletin of the American Mathematical Society, 47 (4): 639–670, arXiv:0904.3740, doi:10.1090/S0273-0979-2010-01306-9
- Nakano, Fumihiko; Sadahiro, Taizo (February 2014), "A generalization of carries processes and Eulerian numbers", Advances in Applied Mathematics, 53: 28–43, doi:10.1016/j.aam.2013.09.005
- Hegland, M.; Wheeler, W. W. (January 1997), "Linear Bijections and the Fast Fourier Transform", Applicable Algebra in Engineering, Communication and Computing, 8 (2): 143–163, doi:10.1007/s002000050059
- Isaksen, Daniel C. (November 2002), "A Cohomological Viewpoint on Elementary School Arithmetic" (PDF), The American Mathematical Monthly, 109 (9): 796–805, doi:10.2307/3072368, JSTOR 3072368, archived from the original (PDF) on January 16, 2014, retrieved January 22, 2014
- Borovik, Alexandre V. (2010), Mathematics under the Microscope: Notes on Cognitive Aspects of Mathematical Practice, AMS, pp. 87–88, ISBN 978-0-8218-4761-9
- Metropolis, N.; Gian-Carlo, Rota; Tanny, S. (May 1973), "Significance Arithmetic: The Carrying Algorithm", Journal of Combinatorial Theory, Series A, 14 (3): 386–421, doi:10.1016/0097-3165(73)90013-7
- Faltin, F.; Metropolis, N.; Ross, B.; Rota, G.-C. (June 1975), "The Real Numbers as a Wreath Product", Advances in Mathematics, 16 (3): 278–304, doi:10.1016/0001-8708(75)90115-2
- Roegel, Denis (2015). "Chebyshev's continuous adding machine" (PDF). Archived (PDF) from the original on 2017-08-09.
- Ernst, Martin (1925). The Calculating Machines (PDF). Charles Babbage Institute. p. 96.