baca Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 System dwójkowy: System binarny operuje jedynie na dwóch cyfrach. Są to: zero i jeden. Stosując rozmaite kombinacje tych cyfr można uzyskać dowolną liczbę. Aby liczbę zapisaną dziesiętnie skonwertować na system binarny trzeba rozbić ją na ciąg zer i jedynek. Najwygodniej jest narysować sobie małą tabelkę, i postępować w odpowiedni sposób: |128 |64 |32 |16 |8 |4 |2 |1 Weźmy liczbę 169 (w tabeli ASCII jest to znak "©"). Teraz spójrz na tabelkę i zastanów się, czy pierwsza liczba z tabeli [idąc od lewej] mieści się w 169 ? Konkretnie, czy 128 mieście się w 169? Jak widać jest to prawdą. Tak więc w tabelce pod liczbą 128 piszemy sobie cyfrę 1. Po odjęciu od 169 liczby 128 otrzymamy liczbę 41. Teraz należy postępować podobnie z kolejnymi liczbami w tabeli. Sprawdzamy, czy kolejna liczba z tabeli [64] mieści się w liczbie 41. Nie, więc piszemy pod liczbą 64 cyfrę 0. W liczbie 32 wstawiamy 1. Teraz kolej na liczbę 16. Ona nie mieści w sobie liczby 9, więc piszemy 0. Różnica liczb: 9 i 0, to 1. Zatem trzeba postawić cyfrę 0 pod liczbami 4 i 2 ponieważ są większe od jedynki. Ostatnia liczba jaka nam została to 1. Mam nadzieję, że wiesz gdzie ją postawić? Cała liczba w postaci binarnej przedstawia się następująco: 128 |64 |32 |16 |8 |4 |2 |1 1 |0 |1 |0 |1 |0 |0 |1 Przekonajmy się teraz, czy aby nie popełniliśmy błędu. Popatrz na tabelkę. Idąc od lewej tuż pod liczbą 128 mamy cyfrę 1. Następna to zero, jeden, zero, jeden, dwa zera i ostatnia to jedynka. Druga znajduje się pod liczbą 32, trzecia pod liczbą 18 i czwarta pod 1. Sumujmy wszystko otrzymamy: 128 + 32 + 8 + 1, czyli 169. Oznacza to, że nie popełniliśmy błędu. Oczywiście podczas przeliczania należy pamiętać, aby tabelka była odpowiednio duża. Nasza wystarczy dla liczb nie większych, niż 255 (wystarczy do całej tabelki ASCII). Jeżeli chcesz skonwertować liczbę większą musisz posłużyć się następującą tabelą: 32768 |16384 |8192 |4096 |2048 |1024 |512 |256 |128 |64 |32 |16 |8 |4 |2 |1 Koniec definicji teraz zademonstruje konwerter systemu dwójkowego na dziesiętnie: https://gmclan.org/up2092_12_dec_bin.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 http://www.guidecpp.x12.pl/extra-digitsystems.php Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
baca Opublikowano 14 Października 2008 Autor Udostępnij Opublikowano 14 Października 2008 zgadza zapożyczyłem z tej strony do zrozumienia mojego przykładu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 A żeś się popisał <_< Swoją drogą to za takie co.s powinny warny lecieć... Edit: Takie rzeczy się zaznacza. Bo ja przyjąłem, że to jest artykuł, a przykład to tylko uzupełnienie. Jakby nie było, pała. Nieprzydatne, na dodatek proste. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matthew Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 Too bad... Z resztą, jest lepszy sposób. Dzielisz na 2 i sprawdzasz resztę z dzielenia - jeśli jest, to zapisujesz 1, jeśli nie, zapisujesz 0 i koniec. Sprawdźmy: 18 / 2 = 9 r. 0 9 / 2 = 4 r. 1 4 / 2 = 2 r. 0 2 / 2 = 1 r. 0 1 / 2 = 0 r. 1 Wynik: 18 (10) = 10010 (2) E: Albo dla ułatwienia: jeśli liczba jest nieparzysta, to odejmujemy od niej 1, a potem dzielimy ją przez 2. Zapisujemy wtedy 1. Parzysta - zapisujemy 0. 93 -> 92 / 2 = 46 | 1 46 -> 46 / 2 = 23 | 0 23 -> 22 / 2 = 11 | 1 11 -> 10 / 2 = 5 | 1 5 -> 4 / 2 = 2 | 1 2 -> 2 / 2 = 1 | 0 1 -> 1 / 2 = 0 | 1 Odp.: 1011101 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Maximal Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 zgadza zapożyczyłem z tej strony do zrozumienia mojego przykładuW takim wypadku podaje się źródło. Bo jak widzisz, dochodzi do nieporozumień. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matthew Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 A z systemu dziesiętnego na heksadecymalny: 349 / 16 = 21 r. 13 => D 21 / 16 = 1 r. 5 => 5 1 / 16 = 0 r. 1 => 1 Wynik: 15D (16) = 349 (10) W sumie, to dla każdego systemu liczbowego jest ten sam wzór: a / b = c1, r. d1 c1 / b = c2, r. d2 ... cn / b = 0, r. dn gdzie: a - liczba do zamiany b - system liczbowy c - wynik tymczasowy (kolejny element liczby do zamiany) d - cyfra Wynik: d n|d n-1|d n-2| ... |d2|d1| Thank you for listen my speech. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 14 Października 2008 Udostępnij Opublikowano 14 Października 2008 a to jeszcze powiedz po co to się wykorzystuje :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 Marek, system binarny może nie aż tak, ale heksadecymalny jak najbardziej, gdyż podawanie trzeć argumentów do stworzenia koloru może być czasem nie na miejscu. Funkcja dec_to_bin: a = argument[ 0 ]; b = false; if ( a mod 2 ) b = true; res = ''; while( true ) { if ( b ) res += string( ( a mod 2 ) ); else res += string( !( a mod 2 ) ); if ( a == 1 ) break; a = a div 2; } return res; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 A słyszeliście o shift left, shift right, or i and? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 Ta, przesunięcie bitów, zapomniałem xD. Ale to tylko ty idziesz na łatwiznę leniu :( . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 przesunięcie bitów jest bardziej wydajne... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 Od kiedy myślenie należy do łatwiejszych rzeczy od bezmyślnej analizy metody matematycznej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 To z deka logiczne. To co ja zrobiłem, to tak jakby dawać jakąś nową wartość zmiennej po czym nie używać jej kompletnie, i znów przywrócić starą wartość :P ... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Firemark Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 Pental Hental if ( a == 1 ) break; if ( b ) gml ? po co dajesz raz ( b ) a raz (a == 1) ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 15 Października 2008 Udostępnij Opublikowano 15 Października 2008 Dark Mark, nie bez powodu. if ( a ) to inaczej if ( a != 0 ), a nie if ( a == 1 ), już kumasz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się