SP w Piotrowicach Strona Główna SP w Piotrowicach
Forum Szkoły Podstawowej nr 3 w Piotrowicach

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum

Poprzedni temat «» Następny temat
Systemy liczbowe
Autor Wiadomość
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-01-17, 19:28   Systemy liczbowe

Witam,

w etapie szkolnym jednym z pytań było, która liczba w zapisie dwójkowym odpowiada danej liczbie w systemie dziesiętnym.

Pod poniższym linkiem jest to dokładniej opisane,
http://www.programuj.com/...ne/sysliczb.php

ale mnie interesują takie fragmenty:

Cytat:
Konwersja liczby dwójkowej (binarnej) na dziesiętną

Skoro już wiesz, po co nam system binarny, dowiesz się jak przeliczać go na nasz system dziesiętny. Weźmy sobie zatem jakąś liczbę zapisaną w systemie dwójkowym, np. 1000011. Zaczynamy od cyfr wysuniętych najbardziej na prawo. Najbardziej na prawo wysunięta jest cyfra 1, a więc tak jak poprzednio mnożymy ją przez podstawę systemu (czyli 2) z odpowiednią potęgą. Podstawą systemu jest 2. Zatem, cała konwersja ma postać: 1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 +0*2^4 + 0*2^5 +1*2^6 ("^" to znak potęgi), a to się równa: 1 + 2 + 0 + 0 + 0 + 0 + 64, czyli jest to 67 w systemie dziesiętnym.

Konwersja liczby dziesiętnej na dwójkową (binarną)

Teraz, skoro już umiesz konwertować liczby z zapisu dwójkowego na dziesiętny warto by było skonwertować je odwrotnie, to znaczy z zapisu dziesiętnego na dwójkowy. Gdybyśmy liczyli na piechotę, byśmy musieli sprawdzać kolejne wielokrotności liczby 2. Sposób ten raczej jest mało stosowany, zajmijmy się trochę lepszym. Jest to prosty sposób, wcale nie wymaga myślenia. Najpierw bierzemy liczbę, jaką chcemy skonwertować na zapis dwójkowy. Weźmy liczbę z poprzedniego rozdziału i sprawdźmy, czy nam się to zgadza. Zatem, liczba którą będziemy konwertować to 67. Sposób jest następujący: liczbę dzielimy przez 2 i jeżeli wynik będzie z resztą: zapisujemy 1, jeżeli nie - zapisujemy 0. Następnie znowu dzielimy przez 2 to co zostało z liczby, ale bez reszty. Taki proces trwa, aż zostanie 0 (zero). Otrzymane zera i jedynki zapisujemy w odwrotnej kolejności. Wyjaśni się to wszystko na konkretnym przykładzie. Zatem do dzieła:

67 :2 | 1
33 :2 | 1
16 :2 | 0
8 :2 | 0
4 :2 | 0
2 :2 | 0
1 :2 | 1


Co daje 1000011.

Należy wiedzieć też co nieco na temat systemu szesnastkowego, przeanalizujcie:
http://www.kaska.pr.radom.pl/stronatsi/system.html

Ćwiczenie

1. Zapisz w systemie dwójkowym liczbę 212.
2. Zapisz w systemie dziesiętnym liczbę 1100101.

Prosze podać to rozpisane, nie sam wynik. I nie wysyłać na maila, tylko po prostu tu wpisać, albo spytać, jak czegoś nie rozumiecie.
_________________
Pozdrawiam
----------------------------------
 
 
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-01-18, 19:46   

No to może sam zacznę zamianę liczby 42 na system dwójkowy.

Jak pisałem, liczbę trzeba dzielić przez dwa aż zostanie zero i zapisywać resztę z dzielenia.
No to jedziemy:
42 / 2 = 21 reszta 0
21 / 2 = 10 reszta 1
10 / 2 = 5 reszta 0
5 / 2 = 2 reszta 1
2 / 2 = 1 reszta 0
1 /2 = 0 reszta 1

Teraz bierzemy te reszty zaczynając od dołu i dostajemy - 101010. Proste, nie? :-)

Teraz jak chcemy zamienić to z powrotem na system dziesiętny, to naprościej nad każdą cyfrą poczynając od PRAWEJ strony, napisać sobie potęgę liczby 2 (bo to podstawa systemu jak 10 jest podstawą systemu dziesiętnego a 16 - szestastkowego), zaczynając od 2^0 (dwa do potęgi zero, czyli 1).

Patrząc od PRAWEJ strony mamy odpowiednio: 1, 2, 4, 8, 16, 32. Teraz po prostu musimy zsumować te liczby, które stoją NAD JEDYNKAMI, czyli 2+8+32 = 42. Dlaczego nad jedynkami? No bo mnożenie przez zero i tak da zero, więc nie musimy rozpisywać całości. Tak jest po prostu najszybciej. Rozpisując całość byłoby tak:
0*(2^0) +
1*(2^1) +
0*(2^2) +
1*(2^3) +
0*(2^4) +
1*(2^5) = 42 :-)

Jak nie rozumiecie, to piszcie...
_________________
Pozdrawiam
----------------------------------
 
 
Linka 
Nałogowiec
Absolwent.^^


Pomogła: 1 raz
Wiek: 27
Dołączyła: 10 Paź 2007
Posty: 497
Skąd: Piotrowice
Wysłany: 2008-01-19, 11:54   

No więc:
Ćw. 1:
212 : 2 |0
106 : 2 |0
58 : 2 |0
29 : 2 |1
14 : 2 |0
7 : 2 |1
3 : 2 |1
1 : 2 |1

Wynik: 00010111

Ćw.2:
1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4 + 0*2^5 + 1*2^6 = 1 + 2 + 0 + 0 + 16 + 0 + 64 = 83

Zrobione na podstawie pierwszego posta.
_________________
Per aspera ad astra.
 
 
 
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-01-19, 13:36   

Spoko, już mówię, gdzie jest błąd.

Ćw.1
1. Błąd w dzieleniu 106 / 2.
2. Wynik trzeba zapisać biorąc te reszty OD DOŁU. Liczba binarna zaczyna się zawsze od jedynki.

Ćw.2
Rozumowanie dobre, mając dobre dane, dostaniesz dobry wynik. :-)

[dodano: 25.10.2008, 19:12]
W takim razie proszę zamienić na system dwójkowy i szesnastkowy liczbę 168
_________________
Pozdrawiam
----------------------------------
 
 
glymbiu 
Użytkownik forum


Wiek: 26
Dołączył: 12 Paź 2007
Posty: 135
Skąd: Piotrowice
Wysłany: 2008-10-25, 19:18   

To może pan będzie to nam na tych kółkach tłumaczył bo trochę tego nie rozumiem :-/ :-/
 
 
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-10-25, 20:00   

Nie przyjmuję takiej odpowiedzi do wiadomości ;-) najpierw pokaż, że przeczytałeś ten wątek i efekty swojej (nieudanej) pracy. Potem zobaczymy, gdzie zrobiłeś błąd.

Niestety na wytłumaczenie wszystkiego na żywo nie będziemy mieć czasu, a przy odrobinie dobrej woli wyczytacie prawie wszystko na forum, co będzie potrzebne do konkursu.

Na początek niech ktoś chociaż zacznie tą zamianę liczby 168 na system dwójkowy.

Wskazówka: zamianę liczb umożliwia nawet systemowy kalkulator, można sobie od razu samemu sprawdzić.

HEX = system szesnastkowy
DEC = dziesiętny
OCT = ósemkowy
BIN = dwójkowy
_________________
Pozdrawiam
----------------------------------
 
 
słonko 



Pomogła: 2 razy
Wiek: 26
Dołączyła: 10 Paź 2007
Posty: 1018
Skąd: Piotrowice
Wysłany: 2008-10-26, 09:25   

168 : 2 | 0
84 :2 | 0
42 : 2 | 0
21 : 2 |1
10 : 2 | 0
5 : 2 | 1
2 : 2 | 0
1 : 2 |1

Wynik: 10101000

Nie wiem czy dobrze... :-/
_________________
"Gdzie jest skarb Twój tam i serce Twoje"
  
 
 
 
glymbiu 
Użytkownik forum


Wiek: 26
Dołączył: 12 Paź 2007
Posty: 135
Skąd: Piotrowice
Wysłany: 2008-10-26, 09:29   

168:2 | 0
84:2 |0
42:2 |0
21: 2 |1
10:2| 0
5:2 |1
2:2 | 0
1:2 |1

Wynik to 00010101
znając życie to pewnie źle :-/
 
 
chmurka 
Haker
Chmurka xD


Wiek: 26
Dołączyła: 14 Kwi 2008
Posty: 776
Skąd: Piotrowice
Wysłany: 2008-10-26, 11:08   

hehe jacy zgodni tylko koncówka sie nie zgadza :mrgreen: :mrgreen:
_________________

 
 
 
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-10-26, 12:24   

Oboje dobrze, tylko glymbiu źle odczytał, czyta się od dołu, tak jak slonko podała. Teraz proszę zamienić 11001010001 na system dziesiętny. :-)
_________________
Pozdrawiam
----------------------------------
 
 
słonko 



Pomogła: 2 razy
Wiek: 26
Dołączyła: 10 Paź 2007
Posty: 1018
Skąd: Piotrowice
Wysłany: 2008-10-26, 15:43   

11001010001

1617 : 2 |1
808 : 2 | 0
404 : 2 | 0
202 : 2 | 0
101 : 2 | 1
50 : 2 | 0
25 : 2 | 1
12 : 2 | 0
6 : 2 | 0
3 : 2 | 1
2 : 1 | 1

W systemie dwójkowym będzie to tak, ale systemy dzisiętnego nie rozumiem... :-/ :-/
_________________
"Gdzie jest skarb Twój tam i serce Twoje"
 
 
 
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-10-26, 19:07   

Liczba binarna 11001010001

Zaczynasz od prawej, pierwsza jest jedynka, nie? Trzeba ją pomnożyć przez 2 (bo system dwójkowy) podniesione do potęgi zerowej (2^0=1, ten daszek to znak potęgi w informatyce)

Czyli: 1x2^0 = 1

Potem bierzesz następną cyfrę i mnożysz przez 2 do potęgi 1

Czyli: 0x2^1 = 0, nie?

Potem znowu następną mnożysz przez 2 do kolejnej potęgi czyli do potęgi 2

Czyli: 0x2^2 = 0

Rozpiszcie to dalej proszę i zsumujcie te wyniki, wyjdzie liczba w systemie dziesiętnym. :-)
_________________
Pozdrawiam
----------------------------------
 
 
słonko 



Pomogła: 2 razy
Wiek: 26
Dołączyła: 10 Paź 2007
Posty: 1018
Skąd: Piotrowice
Wysłany: 2008-10-27, 07:39   

11001010001

1x2^0 = 1
1x2^1= 2
0x2^2=0
0x2^3=0
1x2^4=16
0x2^5=0
1x2^6=64
0x2^7=0
0x2^8=0
0X2^9=0
1x2^10=400

Wynik: 400+0+0+0+64+0+16+0+0+2+1=483

Oto jest pytanie...czy ja to dobrze zrobiłam??
_________________
"Gdzie jest skarb Twój tam i serce Twoje"
 
 
 
Greif 



Pomógł: 2 razy
Wiek: 44
Dołączył: 02 Paź 2007
Posty: 1577
Skąd: Piotrowice
Wysłany: 2008-10-27, 16:25   

Skoro Ci wyszedł inny wynik, niż poprzednio, to znaczy, że źle... po prostu masz zacząć od prawej.

Poza tym, 2^10 to nie 400.
_________________
Pozdrawiam
----------------------------------
 
 
słonko 



Pomogła: 2 razy
Wiek: 26
Dołączyła: 10 Paź 2007
Posty: 1018
Skąd: Piotrowice
Wysłany: 2008-10-27, 18:18   

11001010001

1x2^0=1
0x2^1=0
0x2^2=0
0x2^3=0
1x2^4=16
0x2^5=0
1x2^6=64
0x2^7=0
0x2^8=0
1x2^9=512
1x2^10=1024

Wynik: 1024+512+0+0+64+0+16+0+0+0+1=1617

No to teraz powinno być dobrze...
_________________
"Gdzie jest skarb Twój tam i serce Twoje"
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group