División por dos

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En matemáticas, la división por dos o la reducción a la mitad también se ha denominado mediación o diminución. El tratamiento de esto como una operación diferente a la multiplicación y división por otros números se remonta a los antiguos egipcios, cuyo algoritmo de multiplicación usaba la división por dos como uno de sus pasos fundamentales. Algunos matemáticos aún en el siglo XVI continuaron viendo la reducción a la mitad como una operación separada y, a menudo, continúa siendo tratada por separado en la programación informática moderna. Realizar esta operación es simple en aritmética decimal, en el sistema numérico binario utilizado en la programación de computadoras y en otras bases pares.

Binario

En la aritmética binaria, la división por dos se puede realizar mediante una operación de desplazamiento de bits que desplaza el número uno hacia la derecha. Esta es una forma de optimización de 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): se elimina el bit de menor orden, un 1. De manera similar, la división por cualquier potencia de dos 2k se puede realizar desplazando a la derecha las posiciones de k. Debido a que los cambios de bits suelen ser operaciones mucho más rápidas que la división, reemplazar una división por un cambio de esta manera puede ser un paso útil en la optimización del programa. Sin embargo, por el bien de la portabilidad y legibilidad del software, a menudo es mejor escribir programas utilizando la operación de división y confiar en el compilador para realizar este reemplazo. Un ejemplo de Common Lisp:

 ()setq Número #b1101001) ; #b1101001 — 105 ()ceniza Número -1) ; #b0110100 — 105  1 ⇒ 52 ()ceniza Número -4) ; #b0000110 — 105  Confía 4 ≡ 105 / 24 ⇒ 6

Sin embargo, las afirmaciones anteriores no siempre son ciertas cuando se trata de dividir números binarios con signo. Desplazar 1 bit a la derecha dividirá por dos, siempre redondeando hacia abajo. Sin embargo, en algunos idiomas, la división de números binarios con signo se redondea hacia 0 (que, si el resultado es negativo, significa que se redondea hacia arriba). Por ejemplo, Java es uno de esos lenguajes: en Java, -3 / 2 se evalúa como -1, mientras que -3 >> 1 se evalúa como -2. Entonces, en este caso, el compilador no puede optimizar la división por dos reemplazándola por un cambio de bit, cuando el dividendo podría ser negativo.

Coma flotante binaria

En la aritmética binaria de coma flotante, la división entre dos se puede realizar disminuyendo el exponente en uno (siempre que el resultado no sea un número subnormal). Muchos lenguajes de programación proporcionan funciones que se pueden usar para dividir un número de punto flotante por una potencia de dos. Por ejemplo, el lenguaje de programación Java proporciona el método java.lang.Math.scalb para escalar por una potencia de dos, y el lenguaje de programación C proporciona la función ldexp para el mismo propósito.

Decimales

El siguiente algoritmo es para decimales. Sin embargo, puede usarse como modelo para construir un algoritmo para tomar la mitad de cualquier número N en cualquier base par.

  • Escribe N, poniendo un cero a su izquierda.
  • Ir a través de los dígitos de N en pares superpuestos, escribiendo dígitos del resultado de la tabla siguiente.
Si el primer dígito es InclusoInclusoInclusoInclusoIncluso OddOddOddOddOdd
Y segundo dígito es 0 o 12 o 34 o 56 ó 78 o 9 0 o 12 o 34 o 56 ó 78 o 9
Escriba 01234 56789

Ejemplo: 1738/2=?

Escribe 01738. Ahora trabajaremos para encontrar el resultado.

  • 01: incluso dígito seguido de 1, escriba 0.
  • 17: dígito extraño seguido por 7, escriba 8.
  • 73: dígito extraño seguido por 3, escriba 6.
  • 38: dígito extraño seguido por 8, escriba 9.

Resultado: 0869.

En el ejemplo se puede ver que 0 es par.

Si el último dígito de N es un dígito impar, se debe sumar 0,5 al resultado.

Contenido relacionado

Robert Watson (químico)

Sir Robert Tony Watson CMG FRS es un químico británico que ha trabajado en temas de ciencia atmosférica, incluido el agotamiento del ozono, el...

Cerrar

Bloqueopuede referirse...

Receptor

Receptor puede referirse...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save