Zamiana liczby dzięsiętnej na binarną.

Teoria liczb, teoria grafów, indukcja
Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
kauek
Rozkręcam się
Rozkręcam się
Posty: 40
Rejestracja: 02 paź 2011, 11:47
Podziękowania: 91 razy

Zamiana liczby dzięsiętnej na binarną.

Post autor: kauek »

Prosiłbym o pomoc w rozwiązaniu (rozpisaniu) poniższego zadania - bo mam pojęcia jakkolwiek się do niego zabrać, a jest ona jednym z wyżej punktowanych u mnie...

Zadanie.

Liczbę dziesiętną 4 260 012 860 zamień na liczbę binarną (0/1). W zapisie liczby binarnej rozdziel wyraźnie bajty. Przedstaw tę liczbę także w postaci szesnastkowej, używając cyfr 0, 1 ..., 9, A , B, C, D, E, F.
Przykładowo liczba 4300 zamieni się na 10CC hex czyli 1 0000 1100 1100... zwróć uwagę, że binarna postać liczby 4 260 012 860 ma najwyżej 32 bity, czyli 8 cyfr szesnastkowych.
octahedron
Expert
Expert
Posty: 6762
Rejestracja: 19 mar 2011, 00:22
Otrzymane podziękowania: 3034 razy
Płeć:

Post autor: octahedron »

Najpierw binarnie, potem szesnastkowo, czy obojętnie w jakiej kolejności?
kauek
Rozkręcam się
Rozkręcam się
Posty: 40
Rejestracja: 02 paź 2011, 11:47
Podziękowania: 91 razy

Re: Zamiana liczby dzięsiętnej na binarną.

Post autor: kauek »

Najpierw binarnie.
octahedron
Expert
Expert
Posty: 6762
Rejestracja: 19 mar 2011, 00:22
Otrzymane podziękowania: 3034 razy
Płeć:

Post autor: octahedron »

No to bierzemy kolejne reszty z dzielenia przez \(2\):

\(4 260 012 860:2=2 130 006 430\quad r=0\\
2 130 006 430:2=1 065 003 215\quad r=0\\
1 065 003 215:2=532 501 607\quad r=1\\
532 501 607:2=266 250 803\quad r=1\\\)


itd., dostajemy kolejne cyfry binarne poczynając od najmniej znaczącej, czyli wychodzi \(....1100\). Potem grupujemy cyfry po cztery i zamieniamy na szesnastkowe, więc będzie \(....C\)
kauek
Rozkręcam się
Rozkręcam się
Posty: 40
Rejestracja: 02 paź 2011, 11:47
Podziękowania: 91 razy

Post autor: kauek »

Napisałem do wykładowcy, po tygodniu raczył odpisać - zrobił inny przykład. Zamieszczam rozwiązane napisane przez niego.

Obrazek
Dla przykładu jest to inna liczba 3 836 226 682
Czemu ją dzieli przez 16? I jakby jakoś można było logicznie wytlumaczyć kolumne HEX i Bin - czytałem o tym w internecie, ale nie ma przykładów z takimi ogromnymi liczbami...
Panko
Fachowiec
Fachowiec
Posty: 2946
Rejestracja: 20 gru 2013, 21:41
Lokalizacja: Radom
Otrzymane podziękowania: 1556 razy
Płeć:

Re: Zamiana liczby dzięsiętnej na binarną.

Post autor: Panko »

Korzystając z WolframAlpha.com możesz przyspieszyć naukę.
Instrukcja : BaseForm[ x,b] podaje zapis liczby \(x\) w systemie liczbowym o podstawie \(b\)
Wpisujesz w oknie edycji komendę : BaseForm[ 4260012860,2] czyli konwertujesz swoją liczbę na układ binarny( dwójkowy) i dostajesz to co poniżej
http://www4b.wolframalpha.com/Calculate ... =199.&h=18.

Wpisujesz : BaseForm[ 4260012860,16] , czyli konwertujesz twoją liczbę do układu szestnastkowego czyli na HEX i dostajesz
http://www4b.wolframalpha.com/Calculate ... w=60.&h=18.

Natomiast sam algorytm konwersji to wyjaśnił już Octahedron .
Jeżeli chcesz zamienić na liczbę w układzie szestnastkowym do musisz dzielić przez \(16\)
Dostaniesz wtedy jak dla twojej liczby następujące przedstawienie \(4260012860_{10}=a3c500_{16}=0+0 \cdot 16^1+5 \cdot 16^2+12\cdot16^3+3 \cdot 16^4+10 \cdot 16^5\)
ef39
Stały bywalec
Stały bywalec
Posty: 501
Rejestracja: 15 sie 2012, 21:03
Podziękowania: 12 razy
Otrzymane podziękowania: 275 razy

Re: Zamiana liczby dzięsiętnej na binarną.

Post autor: ef39 »

Podstawą w systemie hex jest liczba 16 trzeba więc naszą liczbę przedstawić przy pomocy potęg liczby 16

Najpierw prosty przykład
\(998=62 \cdot 16^1+6 \cdot 16^0=\underbrace {(3 \cdot 16^1+14)}_{62} \cdot 16^1+6 \cdot 10^0=3 \cdot 16^2+14 \cdot 16^1+6 \cdot 10^0\)

jak widać mnożniki kolejnych potęg to kolejne reszty z dzielenia przez 16

cyframi kodu hex są 0,1,2,3,4,5,6,7,8,9,A (zastępuje 10),B(zastępuje 11),C(zastępuje 12),D(zastępuje 13),E(zastępuje 14),F(zastępuje 15)

liczba zapisana w kodzie hex to mnożniki kolejnych potęg zapisane przy pomocy cyfr kodu hex
czyli zamiast 3 14 6 mamy 3E6

(analogicznie w systemie dziesiętnym 253 to \(2 \cdot 10^2+5 \cdot 10^1+3 \cdot 10^0\))

w zadaniu zrobionym przez wykładowcę pierwsza reszta wyszła równa 10 więc w kodzie hex to A
teraz przedstawiamy 10 w kodzie binarnym \(10=1 \cdot 2^3+0 \cdot 2^2+1 \cdot 2^1+0 \cdot 2^0\)
czyli 10 w kodzie binarnym to 1010
ODPOWIEDZ