Division by two
In
Binary
In binary arithmetic, division by two can be performed by a
(setq number #b1101001) ; #b1101001 — 105
(ash number -1) ; #b0110100 — 105 >> 1 ⇒ 52
(ash number -4) ; #b0000110 — 105 >> 4 ≡ 105 / 2⁴ ⇒ 6
The above statements, however, are not always true when dealing with dividing signed binary numbers. Shifting right by 1 bit will divide by two, always rounding down. However, in some languages, division of signed binary numbers round towards 0 (which, if the result is negative, means it rounds up). For example, Java is one such language: in Java, -3 / 2
evaluates to -1
, whereas -3 >> 1
evaluates to -2
. So in this case, the compiler cannot optimize division by two by replacing it by a bit shift, when the dividend could possibly be negative.
Binary floating point
In binary floating-point arithmetic, division by two can be performed by decreasing the exponent by one (as long as the result is not a subnormal number). Many programming languages provide functions that can be used to divide a floating point number by a power of two. For example, the Java programming language provides the method java.lang.Math.scalb
for scaling by a power of two,[7] and the C programming language provides the function ldexp
for the same purpose.[8]
Decimal
The following
- Write out N, putting a zero to its left.
- Go through the digits of N in overlapping pairs, writing down digits of the result from the following table.
If first digit is | Even | Even | Even | Even | Even | Odd | Odd | Odd | Odd | Odd |
---|---|---|---|---|---|---|---|---|---|---|
And second digit is | 0 or 1 | 2 or 3 | 4 or 5 | 6 or 7 | 8 or 9 | 0 or 1 | 2 or 3 | 4 or 5 | 6 or 7 | 8 or 9 |
Write | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Example: 1738/2=?
Write 01738. We will now work on finding the result.
- 01: even digit followed by 1, write 0.
- 17: odd digit followed by 7, write 8.
- 73: odd digit followed by 3, write 6.
- 38: odd digit followed by 8, write 9.
Result: 0869.
From the example one can see that
If the last digit of N is
See also
- One half
- Median, a value that splits a set of data values into two equal subsets
- Bisection, the partition of a geometric object into two equal halves
- Dimidiation, a heraldic method of joining two coats of arms by splitting their designs into halves
References
- ^ Steele, Robert (1922), The Earliest arithmetics in English, Early English Text Society, vol. 118, Oxford University Press, p. 82.
- ISBN 978-3-540-63369-3.
- ^ Jackson, Lambert Lincoln (1906), The educational significance of sixteenth century arithmetic from the point of view of the present time, Contributions to education, vol. 8, Columbia University, p. 76.
- S2CID 144157808.
- ^ ISBN 978-0-13-017008-8.
- ISBN 978-1-59327-056-8.
- ^ "Math.scalb". Java Platform Standard Ed. 6. Retrieved 2009-10-11.
- ^ Programming languages — C, International Standard ISO/IEC 9899:1999, Section 7.12.6.6.