Le tabelle di ricerca sono state menzionate nei commenti. Esistono due approcci.
Crea velocemente una tabella lunga 256 byte, con ogni valore successivo la radice quadrata dell'indice corrispondente. Questo è veloce poiché usi l'argomento come indice per accedere direttamente al giusto valore. Lo svantaggio è che ha bisogno di una tabella lunga, con molti valori duplicati.
Compatto
Come detto, un numero intero a 8 bit può avere solo valori da 0 a 255 e le radici quadrate corrispondenti sono da 0 a 16 (arrotondate). Costruire una tabella di 16 voci (in base zero) con l'n-esima voce il valore massimo per l'argomento per il quale la radice quadrata è n. La tabella sarebbe simile a questa:
0
2
6
12
20
etc.
Cammini attraverso la tabella e ti fermi quando incontri un valore maggiore o uguale al tuo argomento. Esempio: radice quadrata di 18
set index to 0
value[0] = 0, is less than 18, go to the next entry
value[1] = 2, is less than 18, go to the next entry
value[2] = 6, is less than 18, go to the next entry
value[3] = 12, is less than 18, go to the next entry
value[4] = 20, is greater than or equal to 18, so sqrt(18) = 4
Mentre la tabella di ricerca rapida ha un tempo di esecuzione fisso (solo una ricerca), qui il tempo di esecuzione è più lungo per argomenti di valore più elevato.
Per entrambi i metodi, scegliendo diversi valori per la tabella, è possibile selezionare un valore arrotondato o troncato per la radice quadrata.