Jak zmienić liczbę z systemu o podstawie dowolnej na system o podstawie dowolnej ( większej od 1 ale mniejszej niż 11) Proszę nie zamieniać w międzyczasie na system dziesiętny, a dopiero potem na wymagany. Dobrze byłoby użyć schematu Hornera.
Thorerv
Najpierw małe wyjaśnienie. wartość!=reprezentacja Konwersja liczb zmienia tylko reprezentacje.
Taką bezpośrednią konwersje, możesz uzyskać z systemu binarnego na inny o skojarzonej podstawie, czyli 2, 4, 8 (i np 16 ale to po za zakresem zadania). Za pomocą schematu Hornera możesz obliczyć wartość liczby w dowolnym systemie pozycyjnym a nie jej reprezentacje. Wartość liczby jest taka sama w każdym systemie, zmienia się tylko reprezentacja, nie myl tego jakby co :) .Posiadając wartość liczby jej reprezentacje możesz uzyskać wypisując reszty z dzielenia.
Zatem jeśli chodzi o bezpośrednią konwersje tego co można to wygląda to tak:
BIN -> B=4 Liczbę binarną dzielisz na pary od prawej strony. a potem wyliczasz wartość każdej z par. Jeśli braknie ci cyfry do pary to rozszerzasz o 0.
przykład: a = 11011011011 BIN 01 | 10 | 11 | 01 | 10 | 11 a = 123123 (czwórkowo)
B=4 -> BIN Każdą z cyfr wartości liczby po prostu zapisujesz binarnie przykład: a = 3132 (czwórkowo) a = 11011110 BIN
BIN -> OCT Grupujesz tutaj od prawej strony po 3 cyfry, a potem wyliczasz wartości każdej z grup. przykład: a = 11011011011 BIN 11 | 011 | 011 | 011 a = 3333 (ósemkowo)
OCT -> BIN Każdą z cyfr zapisujesz binarnie na 3 pozycjach przykład: a = 7213 OCT a= 111010001011 BIN
Tak po za pytaniem, to zamiana na HEX jest taka sama, natomiast z HEX na BIN, zapisujesz na 4 pozycjach.
Tak jak wspomniałem na początku schemat Hornera może Ci pomóc w obliczeniu wartości liczby, natomiast z samą reprezentacją nic nie zrobi. Jakbyś chciał napisać program liczący wartość liczby w danym systemie to na pewno pomoże bo wykonasz mniej mnożeń i możesz również wykorzystać rekurencje. To jak się wylicza wartość liczby za pomocą schematu Hornera raczej nie jest elementem pytania.
Mam nadzieję, że pomogłem, w razie pytań proszę o kontakt.
wartość!=reprezentacja
Konwersja liczb zmienia tylko reprezentacje.
Taką bezpośrednią konwersje, możesz uzyskać z systemu binarnego na inny o skojarzonej podstawie, czyli 2, 4, 8 (i np 16 ale to po za zakresem zadania). Za pomocą schematu Hornera możesz obliczyć wartość liczby w dowolnym systemie pozycyjnym a nie jej reprezentacje. Wartość liczby jest taka sama w każdym systemie, zmienia się tylko reprezentacja, nie myl tego jakby co :) .Posiadając wartość liczby jej reprezentacje możesz uzyskać wypisując reszty z dzielenia.
Zatem jeśli chodzi o bezpośrednią konwersje tego co można to wygląda to tak:
BIN -> B=4
Liczbę binarną dzielisz na pary od prawej strony. a potem wyliczasz wartość każdej z par. Jeśli braknie ci cyfry do pary to rozszerzasz o 0.
przykład:
a = 11011011011 BIN
01 | 10 | 11 | 01 | 10 | 11
a = 123123 (czwórkowo)
B=4 -> BIN
Każdą z cyfr wartości liczby po prostu zapisujesz binarnie
przykład:
a = 3132 (czwórkowo)
a = 11011110 BIN
BIN -> OCT
Grupujesz tutaj od prawej strony po 3 cyfry, a potem wyliczasz wartości każdej z grup.
przykład:
a = 11011011011 BIN
11 | 011 | 011 | 011
a = 3333 (ósemkowo)
OCT -> BIN
Każdą z cyfr zapisujesz binarnie na 3 pozycjach
przykład:
a = 7213 OCT
a= 111010001011 BIN
Tak po za pytaniem, to zamiana na HEX jest taka sama, natomiast z HEX na BIN, zapisujesz na 4 pozycjach.
Tak jak wspomniałem na początku schemat Hornera może Ci pomóc w obliczeniu wartości liczby, natomiast z samą reprezentacją nic nie zrobi. Jakbyś chciał napisać program liczący wartość liczby w danym systemie to na pewno pomoże bo wykonasz mniej mnożeń i możesz również wykorzystać rekurencje. To jak się wylicza wartość liczby za pomocą schematu Hornera raczej nie jest elementem pytania.
Mam nadzieję, że pomogłem, w razie pytań proszę o kontakt.