Odczytywanie i zapisywanie liczb

Jak odczytać liczby zapisane silniowo

Przemnażamy cyfrę z n-tego miejsca przez n! · Sumujemy wszystkie iloczyny · W przypadku ułamków dzielimy przez k!, jeżeli liczba znajduje się na k-tym miejscu po przecinku.
 np.:
43010! = 0*0! + 1*1! + 0*2! + 3*3! + 4*4! = 0 + 1 + 0 + 18 + 96 = 11510
0,00013! = 0 * ( 1/1!)+0*(1/2!) + 0*(1/3!)+1*(1/4!)+3*(1/5!)=1/24 + 1/40=64/960= 1/1510

Można także posłużyć się odmianą schematu Hornera. Na przykład 341010!(((3*5+4)*4+1)*3+0)*2+1)*1+0=463, 

ogólniej zaś mamy
(…((n*an+ a(n-1)  )*(n-1)+a(n-2 )*…+a2 )*2+a1

Jak przeliczać liczby na system silniowy

Jeżeli chcemy zapisać liczbę niecałkowitą musimy rozbić ją na część całkowitą oraz mantysę (część ułamkową) i zakodować je z osobna.

Postępowanie dla liczby całkowitych:
·         Wykonujemy na kodowanej liczbie operację div-mod, z tym że z każdym kolejnym krokiem dzielimy przez następną liczbę naturalną począwszy od jeden.
·         Powtarzamy operację, aż do momentu w którym wynik z dzielenia całkowitego jest równy 0.
·         Kolejne reszty z dzielenia czytane od dołu utworzą zapis liczby w systemie silniowym.
·         Przed liczbą ujemną w zapisie silniowym musimy postawić minus.

Dla przykładu zakodujemy liczby 120 (czyli 5!), 115, 842



Dzielna
Dzielnik
Wynik z dzielenia całkowitego
Reszta
120
1
120
0
120
2
60
0
60
3
20
0
20
4
5
0
5
5
1
0
1
6
0
1

120 = 100000!

Dzielna
Dzielnik
Wynik z dzielenia całkowitego
Reszta
115
1
115
0
115
2
57
1
57
3
19
0
19
4
4
3
3
5
0
4

115 = 43010!

Dzielna
Dzielnik
Wynik z dzielenia całkowitego
Reszta
842
1
842
0
842
2
421
0
421
3
140
1
140
4
35
0
35
5
7
0
7
6
1
1
1
7
0
1

842 = 1100100!

Jako, że wszystkie liczby stojące po przecinku w dowolnym zapisie pozycyjnym dzielimy przez kolejne potęgi podstawy (lub w tym przypadku kolejne silnie), operacją odwrotną będzie mnożenie. Na tym będziemy zatem bazować.


Algorytm zapisu ułamków:
·         Zacznij od pomnożenia ułamka który chcesz zapisać przez 1, a potem przez 2.
·         Z każdym kolejnym mnożeniem przez kolejną liczbę naturalną określ część całkowitą i mantysę, po czym w następnym kroku pomnóż ostatnią otrzymaną część ułamkową przez kolejną liczbę naturalną.
·         Powtarzaj operację, aż kolejna mantysa wyniesie zero.
·         Części całkowite czytane od góry do dołu pokażą zapis liczby w systemie pozycyjnym.

Przykład: 0,5

Czynnik
Mnożnik
Wynik
Część całkowita
Mantysa
0,5
1
0,5
0
0,5
0,5
2
1
1
0

0,5=0,01!

Przykład: 1/15


Czynnik
Mnożnik
Wynik
Część całkowita
Mantysa
1/15
1
1/15
0
1/15
1/15
2
2/15
0
2/15
2/15
3
6/15=2/5
0
2/5
2/5
4
8/5
1
3/5
3/5
5
3
3
0

1/15=00013!

Za pomocą silniowego systemu pozycyjnego można zapisać także liczby nieskończone i niewymierne. Przykładowo 10.0111111111111111…!