Cześć, ja z zapytaniem czy jest może jakiś sprawniejszy sposób na zamianę liczby np. 1724(10) na system (7) ?
Znam ten tzw. sposób maszynowy z dzieleniem przez 7 i zapisywaniem reszty, ale jest może jakiś szybszy :P
n12 | n11 | n10 | n09 | n08 | n07 | n06 | n05 | n04 | n03 | n02 | n01 |
---|---|---|---|---|---|---|---|---|---|---|---|
2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
+ | + | + | + | + | + | + | + | + | + | + | + |
3 | 2 | 7 | 4 |
(0+2+1) (0+1+0) (4+2+1) (1+0+0) => 32747
172410 => 32747
Zauważ, że im system liczbowy ma mniej cyfr do dyspozycji tym zapis tej liczby jest dłuższy. Przy zapisie szesnatkowym daną wartość możemy zapisać w sposób dość skrócony, czyli mniej cyfr będzie niż np. w dziesiętnym, ale już np. w ósemkowym będzie ich więcej przeważnie, bo mamy mniej cyfr, którymi możemy zapisać wartość.
Tam, gdzie jest jedynka, to trzeba dodać cyfrę do cyfry następnej, przy której też stoi jeden.
Polecam jeszcze ten film.
Zadanie. Przelicz liczbę z systemu dziesiętnego na czwórkowy. Żeby rozwiązać to zadanie, to musimy sprawdzić z ilu cyfr korzysta ten system. A no korzysta z czterech cyfr: 0, 1, 2, 3. Maksimum z tych cyfr to 3, bo to jest największa wartość. Ile potrzebujemy bitów, aby dostać "znak" 3, a no dwóch, bo ...8421. Widać, że tylko 1+2 da nam 3, więc będziemy grupować tylko po dwa bity.
Ile zatem to jest 1810 => X4?
n8 | n7 | n6 | n5 | n4 | n3 | n2 | n1 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
+ | + | + | + | + | + | + | + |
0 | 1 | 0 | 2 |
Odpowiedź, jest to 01024, czyli 1024. 1810 => 1024
Jeśli wyszłaby mniejsza wartość niż źródłowa, to oznaczałoby najprawdopodobniej błędny wynik, ponieważ system dysponujący mniejszą ilością znaków najczęściej ma więcej znaków po konwersji od systemu, który ma tych znaków więcej, np. dziesiętny system na dziesięć znaków, a czwórkowy tylko cztery.
Zgodnie z tym filmem możesz liczby zamieniać tak.
4810 => X11
Podstawą jest 11, więc piszemy 11 do potęgi, której żeby rezultat nie przekroczył 48? Odpowiedź, to 11^1, tak 11 do potęgi 1. Dalej ile należy pomnożyć 11^1, żeby wartość nie przekroczyła liczby 48, a no 4, bo wtedy wyniesie wartość 44, a przy 5 byłoby źle, ponieważ rezultat to 55, a ta liczba już przekracza 48. I tak dalej postępujemy analogicznie z następnymi potęgami, aż do potęgi 0. Reasumując...
4*11^1+4*11^0 = 4411
4810 => 4411
Cyfry 4 i 4 to wszystkie cyfry przepisane z przykładu powyżej. Bierzemy wszyskie cyfry będące czynnikami 11.
Przeczytaj jeszcze tę lekturę.
W kalkulatorze Windowsa można sprawdzać konwersję bądź na tej stronie.
link link
Film ten już kiedyś oglądałem, ale przedstawione są tam standardowe konwersje binarna, ósemkowy, heksadecymalny te omówione sposoby znam :D, mi chodzi o niestandardowe liczby.
Co Masz na myśli, przez "niestandardowe liczby"?