Jesús Ayuso Pérez
ALGORITMO DE BOOTH EN FORMA DE DÍGITOS SIGNADOS
3C TIC (Edición núm. 18) Vol.5 – Nº 3
Septiembre – diciembre ‘16, 33 - 43
Área de Innovación y Desarrollo, S.L.
ISSN: 2254 – 6529
DOI: http://dx.doi.org/10.17993/3ctic.2016.53.33-43
1. INTRODUCCIÓN
Como adelantábamos, el concepto de Booth basa su potencia en la posibilidad de reducir las
operaciones que componen cierto cálculo eliminando secuencias de 1s consecutivos en la
representación binaria, o usando una representación ternaria de un mayor ratio de 0s,
apoyándose en la operación inversa, a la que compone el cálculo, para absorber el efecto
algebraico de operar por la secuencia completa de 1s. Lo que Booth no notó en su algoritmo
fue lo que ocurría ante una secuencia de 1s que consta de un único 1. Claro, si es un solo 1,
no es una secuencia de 1s (tal vez sí, depende de cómo se defina), y en ese caso, no tratado
por Booth, su algoritmo decrementa el rendimiento.
Por otra parte, si lo enfocamos más desde el prisma de la representación ternaria, más
concretamente la representación NAF, eliminamos ese efecto negativo o ese caso no tratado
por Booth. No obstante, tampoco es una solución que pueda terminar de satisfacernos
siempre, o de encajarnos en cualquier situación, ya que la gran virtud de la representación
NAF, que es que garantiza el óptimo, es decir: no existe una representación del número que
tenga mayor número de 0s, es también su punto débil, ya que para garantizar esa
optimalidad se puede volver un cálculo bastante pesado, de cara a agilizar o a ser aplicado el
concepto de Booth a operaciones ligeras. En cambio, de la manera elegante e
implementativa con la que Booth dio a conocer su concepto, su algoritmo puede ser
incrustado sin ese coste de tener que calcular otra representación de los números.
2. METODOLOGÍA
Bien, vamos a tratar de ilustrar exactamente la problemática del concepto de Booth. Para
que se vea mejor, vamos a intentar mostrarlo con una operación sencilla: de la adición, en
nuestro caso algebraico, suma entre enteros.
Antes de nada, repasemos la tabla 1, dada por Booth para reducir el número de operaciones
necesarias, apoyándonos en esa invertibilidad de la primitiva con la que se construye nuestra
operación:
Tabla 1. Tabla de acciones de Booth.
operación inversa /
inverso misma operación
Partiendo de la tabla anterior, el algoritmo de Booth, como figura en la referencia
bibliográfica ‘Booth algorithm operations addition and subtraction’, aplicado a la suma de dos
números, a y b, de longitud n quedaría: