Można wybrać tę liczbę jako dostając Ostatecznie otrzymuje się poniższe funkcje dla kroku kodowania/dekodowaniaData Compression Explained, Matt Mahoney..
Krok dekodowania uABS: s = ceil((x+1)*p) - ceil(x*p) // 0 if fract(x*p) < 1-p, else 1 if s = 0 then x = x - ceil(x*p) if s = 1 then x = ceil(x*p)
Krok kodowania uABS: if s = 0 then x = ceil((x+1)/(1-p)) - 1 if s = 1 then x = floor(x/p)
Dla dostaje się standardowy system dwójkowy (z zamienionymi 0 i 1). Dla innych staje się on zoptymalizowany dla danego rozkładu prawdopodobieństwa. Na przykład dla powyższe formuły prowadzą do tabelki dla małych wartości
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 2 3 4 5 6
Symbol odpowiada podzbiorowi liczb naturalnych o gęstości które w powyższej tabelce są pozycjami Jako że te pozycje zwiększają się o 3 lub 4. Ponieważ tutaj wzorzec symboli powtarza się co 10 pozycji.
Wartość dostaje się, biorąc wiersz odpowiadający danemu symbolowi z którego wybieramy zadane Wtedy wartość w górnym wierszu daje Na przykład przechodząc od środkowego do górnego wiersza.