División entre dos

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En el ámbito de las matemáticas, la división entre dos o partición por la mitad, a veces ha sido tratada como una operación matemática diferente de la multiplicación y la división por otros números.[1] Por ejemplo entre los antiguos egipcios su algoritmo de multiplicación utilizaba la división por dos como uno de sus pasos fundamentales.[2] Algunos matemáticos en el siglo XVI, por ejemplo, continuaban considerando a la división por dos como una operación matemática distintiva,[3] [4] y la programación de computadoras modernas a menudo aún es tratada en forma separada.[5] Es muy fácil realizar esta operación tanto en el sistema aritmético decimal, como en el sistema numérico binario utilizado en la programación de computadoras, y otras bases de numeración pares.

Binaria[editar]

En la aritmética binaria, la división entre dos puede efectuarse por medio de una operación conocida como desplazamiento de bits (en inglés bit shift), la cual desplaza el número un lugar a la derecha. Esto es una forma de optimización conocida como "strength reduction" (reducción de fuerza). Por ejemplo, 1101001 en binario (el número decimal 105), desplazado un lugar a la derecha es 110100 (el número decimal 52): el bit de orden menor, el 1, es removido. Similarmente, la división por cualquier potencia de dos 2k puede efectuarse desplazando a la derecha k posiciones. Como los "bit shifts" son a menudo operaciones mucho más rápidas que la división, reemplazar una división por un desplazo en esta forma puede ser un paso útil en la optimización de programas.[5] Sin embargo, por el bien de mantener la portabilidad del programa y su legibilidad, a menudo es mejor escribir programas utilizando la operación de división y confiar que el compilador llevará a cabo este reemplazo.[6]

Véase también[editar]

Referencias[editar]

  1. Steele, Robert (1922), The Earliest arithmetics in English, Early English Text Society, 118, Oxford University Press, p. 82 .
  2. Chabert, Jean-Luc; Barbin, Évelyne (1999), A history of algorithms: from the pebble to the microchip, Springer-Verlag, p. 16, ISBN 9783540633693 .
  3. Jackson, Lambert Lincoln (1906), The educational significance of sixteenth century arithmetic from the point of view of the present time, Contributions to education, 8, Columbia University, p. 76 .
  4. Waters, E. G. R. (1929), «A Fifteenth Century French Algorism from Liége», Isis 12 (2): 194–236, http://www.jstor.org/stable/224785 .
  5. a b Wadleigh, Kevin R.; Crawford, Isom L. (2000), Software optimization for high-performance computing, Prentice Hall, p. 92, ISBN 9780130170088 .
  6. Hook, Brian (2005), Write portable code: an introduction to developing software for multiple platforms, No Starch Press, p. 133, ISBN 9781593270568 .