Re: !!System dwójkowy i inne...HELP

Autor: Skrzypek (skrzypko_at_polbox.com)
Data: Fri 22 Jan 1999 - 18:55:46 MET


    Czy ktoś jest w stanie wyjaśnić mi podstawy przedstawiania liczb w
systemie dwójkowym, czwórkowym, ósemkowym i szesnastkowym????

    Dwójkowy, dziesiętny i szesnastkowy system znam, a o czwórkowym czy
ósemkowym w życiu nie słyszałem.
    Czy ktoś mnie oświeci, chociaż orientacyjnie.

    Interesuje mnie przeliczanie na różne systemy zarówno w jedną stronę jak
i w drugą.

Dowolną liczbę w systemie n-kowym przedstwia się następująco:

(pisząc od końca liczby - od prawej do lewej cyfry, znak "+" oznacza
następną cyfrę w lewo)

a1*(n^0)+a2*(n^1)+a3*(n^2)+a4*(n^3)+... ,

gdzie znak "^" oznacza "do potęgi", a liczby a1, a2, a3, a4, ... są
wartościami poszczególnych cyfr liczby i należą do przedziału <0;n-1> (np.
dla systemu 2-kowego: {0,1}, 4-kowego: {0,1,2,3}, 8-kowego:
{0,1,2,3,4,5,6,7}, 10-tnego: {0,1,2,3,4,5,6,7,8,9}, 16-kowego:
{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E} itd.

Jeżeli mamy daną liczbę x1, którą chcemy przedstawić w systemie n-kowym,
należy najpierw znaleźć najmniejszą potęgę liczby n, większą od x1. Jeżeli
oznaczymy wykładnik tej potęgi przez m, to ilość cyfr liczby x1 w systemie
n-kowym będzie równa m.

Kiedy znamy ilość cyfr, możemy wyliczyć wartości kolejnych cyfr. Robimy to
od lewej do prawej cyfry. Najpierw należy liczbę x1 podzielić przez n^[m-1].
Cecha (część całkowita) z otrzymanego wyniku daje nam am - pierwszą cyfrę od
lewej.

Żeby otrzymać drugą cyfrę, należy od liczby x1 odjąć am*(n^[m-1]). Otrzymamy
pewną liczbę x2 (to, co zostało jeszcze do rozpisania). Następnie należy x2
podzielić przez n^[m-2]. Cecha z otrzymanego wyniku daje a[m-1] - drugą
cyfrę od lewej.

Trzecia cyfra od lewej:
x2 - a[m-1]*(n^[m-2]) = x3
Cecha { x3 / n^[m-3] } = a[m-2]
...
[m-1]-sza cyfra od lewej:
x[m-2] - a3*(n^2) = x[m-1]
Cecha { x[m-1] / n^1 } = a2

m-ta cyfra od lewej:
x[m-1] - a2*(n^1) = xm
Cecha { xm / n^0 } = a1

Sprawdzałem ten "algorytm" tylko na systemie dwójkowym i dziesiętnym (i w
dodatku "w pamięci"), ale powinien działać poprawnie dla wszystkich
systemów. Niestety, nie jestem dobrym matematykiem, więc jeżeli ktoś
znajdzie jakiś błąd, niech szybko da znać na listę.

Pozdrawiam!

Skrzypek



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 18:07:15 MET DST