[escepticos] FEDEA propone suprimir la paga extra
alosfuncionariosy bajar las pensiones
Jose Ramón Brox
ambroxius en gmail.com
Vie Ago 2 00:04:52 WEST 2013
El 2 de agosto de 2013 00:04, Alberto Rodríguez <fordprefect en cuarentaydos.eu
> escribió:
>
>
> Piensas eso porque piensas en numeros enteros en base decimal (y aun así,
> aunque posible sería ineficiente), mientras que los procesadores trabajan
> con numeros binarios en coma flotante.
>
>
Depende de si realizan las cuentas en la ALU (arithmetic logic unit) o en
la FPU (floating point unit). En la segunda es como dices, en la primera
los números son como mucho de punto fijo. En función de cómo se definan los
tipos de las variables en el programa, las operaciones serán realizadas por
una u otra unidad.
La multiplicación en base 2 es trivial: como cada dígito es o un 0 o un 1,
multiplicar un número binario por un dígito A es o bien anularlo (si A=0) o
bien desplazarlo un lugar hacia la derecha añadiendo tantos ceros como
dígitos tenga detrás A (si A=1).
Así, 1110011*10 = 0 + 11100110.
Lo que se hace habitualmente en las ALU es desplazamiento y suma (shift and
add), que consiste en multiplicar el multiplicando 1 por cada dígito del
multiplicando 2 independientemente y luego sumar los productos parciales en
un sumador con acarreo.
Por ejemplo,
10101*1101 = 10101 + 0 + 1010100 + 0 + 101010000 = ...
La implementación en ensamblador o código máquina es bastante sencilla y
depende del número de registros de la ALU, de la arquitectura interna de la
misma y del tamaño de palabra interno del procesador.
Mercader, lamento que no te sirva esta explicación, ya que proviene de un
matemático :P (*)
(*) Y pseudoingeniero de teleco
Un saludo,
Jose Brox
Más información sobre la lista de distribución Escepticos