FilmPozycyjne systemy liczbowe. System binarny

Film prezentuje sposób zapisywania liczb binarnych oraz algorytmy przeliczania liczb z systemu dwójkowego na dziesiątkowy i odwrotnie.

Ćwiczenie 0

W edytorze zakodowano w języku Python algorytm wypisywania od końca cyfr danej liczby. Porównaj ten algorytm z zamieszczonym poniżej algorytmem zamiany liczby dziesiątkowej na system dwójkowy.

  1. Podaj liczbę w systemie dziesiątkowym.
  2. Jeżeli liczba jest równa 0, to wypisz 0 i zakończ działanie algorytmu.
  3. Przypisz do zmiennej pom (zapamiętywane kolejne cyfry) napis pusty.
  4. Dopóki liczba > 0, wykonuj:
    • dopisz do pom wartość liczba % 2;
    • przypisz do liczba wartość liczba // 2.
  5. Wypisz pom.
def cyfry(liczba): while liczba > 0: print(liczba % 10) liczba = liczba // 10 cyfry(1234) print() cyfry(243452141) print()
Rozwiąż ćwiczenie

Ćwiczenie 1Z systemu dwójkowego na dziesiątkowy

Zdefiniuj funkcję na10(dana), której parametrem jest liczba binarna w postaci napisu, a wynikiem – odpowiadająca jej liczba w systemie dziesiątkowym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji na10("101010") jest 42.
  • Wynikiem funkcji na10("110101") jest 53.
def na10(dana): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji na10("1001") jest 9
testResult = na10("1001") ==9
9
na10("1001")
Wynikiem funkcji na10("10011") jest 19
testResult = na10("10011") ==19
19
na10("10011")
Wynikiem funkcji na10("1111100111") jest 999
testResult = na10("1111100111") ==999
999
na10("1111100111")
Rozwiąż ćwiczenie

Ćwiczenie 2Z systemu dziesiątkowego na dwójkowy

Zdefiniuj funkcję na2(liczba), której parametrem jest liczba dziesiętna, a wynikiem – odpowiadająca jej liczba zapisana jako napis w systemie dwójkowym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji na2(42) jest "101010".
  • Wynikiem funkcji na2(53) jest "110101".
def na2(liczba): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji na2(9) jest 1001.
testResult = na2(9)=='1001'
1001
na2(9)
Wynikiem funkcji na2(19) jest 10011.
testResult = na2(19)=='10011'
10011
na2(19)
Wynikiem funkcji na2(999) jest 1111100111.
testResult = na2(999)=='1111100111'
1111100111
na2(999)
Rozwiąż ćwiczenie

Ćwiczenie 3Z systemu ósemkowego na dziesiątkowy

Zdefiniuj funkcję na10(dana), której parametrem jest liczba zapisana w systemie ósemkowym, a wynikiem – odpowiadająca jej liczba zapisana w systemie dziesiątkowym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji na10("174") jest 124.
  • Wynikiem funkcji na10("362374") jest 124156.
def na10(dana): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji na10("11") jest 9.
testResult = na10("11")==9
9
na10("11")
Wynikiem funkcji na10("23") jest 19.
testResult = na10("23")==19
19
na10("23")
Wynikiem funkcji na10("1747") jest 999.
testResult = na10("1747")==999
999
na10("1747")
Rozwiąż ćwiczenie

Ćwiczenie 4Z systemu dziesiątkowego na ósemkowy

Zdefiniuj funkcję na8(liczba), której parametrem jest liczba dziesiętna, a wynikiem – odpowiadająca jej liczba zapisana w systemie ósemkowym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji na8(124) jest "174".
  • Wynikiem funkcji na8(124156) jest "362374".
def na8(dana): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji na8(9) jest 11.
testResult = na8(9)=='11'
11
na8(9)
Wynikiem funkcji na8(19) jest 23.
testResult = na8(19)=='23'
23
na8(19)
Wynikiem funkcji na8(999) jest 1747.
testResult = na8(999)=='1747'
1747
na8(999)
Rozwiąż ćwiczenie

Zadanie 1Bintooc

Napisz funkcję bintooct(dana), której parametrem jest liczba zapisana w systemie dwójkowym, a wynikiem – odpowiadająca jej liczba zapisana w systemie ósemkowym. Postaraj się wykorzystać fakt, że 8 jest potęgą dwójki. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji bintooct("101010") jest "52".
  • Wynikiem funkcji bintooct("110101") jest "65".
def bintooct(dana): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji bintooct("1001") jest 11.
testResult = bintooct("1001")=="11"
11
bintooct("1001")
Wynikiem funkcji bintooct("10011") jest 23.
testResult = bintooct("10011")=="23"
23
bintooct("10011")
Wynikiem funkcji bintooct("1111100111") jest 1747.
testResult = bintooct("1111100111")=="1747"
1747
bintooct("1111100111")
Rozwiąż ćwiczenie

Zadanie 2Octtobin

Napisz funkcję octtobin(dana), której parametrem jest liczba zapisana w systemie ósemkowym, a wynikiem – odpowiadająca jej liczba zapisana w systemie dwójkowym. Postaraj się wykorzystać fakt, że 8 jest potęgą dwójki. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji octtobin("52") jest "101010".
  • Wynikiem funkcji octtobin("65") jest "110101".
def octtobin(dana): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji octtobin("11") jest 1001.
testResult = octtobin("11")=="1001"
1001
octtobin("11")
Wynikiem funkcji octtobin("23") jest 10011.
testResult = octtobin("23")=="10011"
10011
octtobin("23")
Wynikiem funkcji octtobin("1747") jest 1111100111.
testResult = octtobin("1747")=="1111100111"
1111100111
octtobin("1747")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Obrazki można zapisać za pomocą zer i jedynek jako napis złożony ze słów, np. litera H to "010 000 010". Negatyw obrazka to napis z zerami pozamienianymi na jedynki i jedynkami pozamienianymi na zera, czyli "101 111 101".

Napisz funkcję negatyw(kod), której wynikiem będzie kod negatywu danego obrazka. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji negatyw("010 000 010") jest "101 111 101".
  • Wynikiem funkcji negatyw("101 111 101") jest "010 000 010".
def negatyw(kod): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji negatyw("1001") jest 0110.
testResult = negatyw("1001")=="0110"
0110
negatyw("1001")
Wynikiem funkcji negatyw("10011") jest 01100.
testResult = negatyw("10011")=="01100"
01100
negatyw("10011")
Wynikiem funkcji negatyw("1111100111") jest 0000011000.
testResult = negatyw("1111100111")=="0000011000"
0000011000
negatyw("1111100111")
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Napisz funkcję wieksza(liczba1, liczba2), której wynikiem jest większa z liczb podanych jako parametr lub dowolna z nich, gdy liczby są równe. Liczby są zapisane w systemie dwójkowym. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji wieksza("101","11") jest "101".
  • Wynikiem funkcji wieksza("101","1111") jest "1111".
def wieksza(liczba1, liczba2): #zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji wieksza("101", "110") jest 110.
testResult = wieksza("101", "110")=="110"
110
wieksza("101", "110")
Wynikiem funkcji wieksza("1011", "1011") jest liczby są równe.
testResult = wieksza("1011", "1011")=="1011"
1011
wieksza("1011", "1011")
Wynikiem funkcji wieksza("110", "101") jest 110.
testResult = wieksza("110", "101")=="110"
110
wieksza("110", "101")
Rozwiąż ćwiczenie