System pozycyjny liczby ujemne.

0

Witam, mam zadanie dodatkowe na plusika napisać program w c, który zamieni wpisaną liczbę na liczbę w systmie piątkowym.
Program już napisałem i działa dobrze ale nie wiem jak obsłużyć liczby ujemne.

Gdyby miała być to zamiana do binarnego to zastosował bym ZM, U1 lub U2 ale to jest do piątkowego.

Ktoś ma pomysł jak obsłurzyć przekształcanie ujemnych?

Z dziesiętnego na piątkowy.

0

Głupie pytanie czy nikt nie wie?:D

1

A dlaczego po prostu nie wstawisz znaku minus?

0

Że niby przeliczyć zwykłym sposobem z dziesiętnego na piątkowy i jeśli to ujemna liczba to dorzucić minus z przodu?
To oklepane... Czy to faktycznie tak działa? O_o

Binarne reprezentuje się inaczej niż dodanie.

0

Bo w komputerze nie ma znaku minus, on rozróżnia tylko zera i jedynki. Dlatego trzeba było wymyślić jak za pomocą tych ser i jedynek zapisać że liczba jest ujemna. Więc o ile nie masz żadnych odgórnych wytycznych jak zapisywać liczby ujemne to tak będzie najprościej. Równie dobrze możesz sobie przyjąć że najstarsza cyfra reprezentuje znak, np. zero to plus a każda inna cyfra to minus albo parzysta to plus a nieparzysta minus.

0

Bo w komputerze nie ma znaku minus, on rozróżnia tylko zera i jedynki. Dlatego trzeba było wymyślić jak za pomocą tych ser i jedynek zapisać że liczba jest ujemna. Więc o ile nie masz żadnych odgórnych wytycznych jak zapisywać liczby ujemne to tak będzie najprościej. Równie dobrze możesz sobie przyjąć że najstarsza cyfra reprezentuje znak, np. zero to plus a każda inna cyfra to minus albo parzysta to plus a nieparzysta minus.

Troche nie rozumiem. Najpierw piszesz że komputer rozróżnia tylko zera i jedynki, a później piszesz o minusie ;).

Równie dobrze możesz sobie przyjąć że najstarsza cyfra reprezentuje znak, np. zero to plus a każda inna cyfra to minus albo parzysta to plus a nieparzysta

To właśnie ZM (o którym wspomniał autor). Trochę dziwne ZM, bo pięciostanowe, ja bym raczej zabronił czegoś poza 0 i 1 na najstarszej cyfrze. Ma sens tylko jeśli zakładamy że mamy stała długość kodowania. Dalej, możemy też użyć U2 (i U1, ale to bez sensu), przykładowo -1 w systemie piatkowym w U2 na 5 cyfrach to byłoby 44444 (a -2 to 44443, itd).

Ale odpowiadajac na postawione pytanie, jestem (prawie) pewien że autor zadania nie chce nic takiego skomplikowanego. O ile w ogóle moga na wejściu być liczby ujemne, to na 99% masz po prostu wypisać normalnie liczbę piatkowa - z minusem.

0

Troche nie rozumiem. Najpierw piszesz że komputer rozróżnia tylko zera i jedynki, a później piszesz o minusie ;).

Napisałem że komputer traktuje pewne zera i jedynki jako znak.

ja bym raczej zabronił czegoś poza 0 i 1 na najstarszej cyfrze

Gdybym miał budować komputer oparty o piątkowy system liczbowy to (w przypadku ZM) przyjąłbym że 0 oznacza plus a każda inna wartość minus, tak jak w przypadku typu boolowskiego przyjmuje się że 0 to fałsz a każda inna wartość to prawda. Ale w zadaniu "na plusik" chyba nie ma to wielkiego znaczenia.

Ma sens tylko jeśli zakładamy że mamy stała długość kodowania

Dlaczego? jeżeli mogę użyć spacji lub jakiegokolwiek innego znaku jako znak końca liczby/słowa to długość może być zmienna. Zarówno 443 jak i 44444443 w systemie U2 będzie równe -2.

0

Chciałbym zwrócić uwagę, że o U2 możemy mówić tylko w przypadku systemu o podstawie 2. Dla systemu piątkowego będzie to U5 czyli uzupełnienie do pięciu.
Zmieniając znak liczby postępujemy analogicznie, jak przy systemie dwójkowym: negujemy każdą z cyfr (w przypadku systemu piątkowego będzie to: 4 odjąć aktualna cyfra). A następnie, do zanegowanej wartości, dodajemy największą cyfrę w systemie (w tym przypadku 4).

Pozdrawiam,
Ł

0

dodajemy największą cyfrę w systemie (w tym przypadku 4)

Nie. Zawsze dodajemy 1.

0

Jeżeli autor zadania niczego nie mówił o konkretnej reprezentacji liczb ujemnych czy kodach uzupełnień to liczby ujemne bym po prostu przedstawiał z minusem. Kod uzupełnień w systemie binarnym stosowany jest z kilku powodów (jedna reprezentacja zera, naturalne operacje dodawania, odejmowania i mnożenia na popularnych architekturach) i nie widzę ich związku akurat z tym zadaniem oraz ogólnie z systemem piątkowym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1