Pls help meee )))
Zmień na zapis w systemie binarnym, zapisując tok obliczeń:
rok powstania twojej szkoły -1952
twój wzrost -170
liczbę ludności Księstwa Monako -39 244
liczbę dni trwania Powstania Warszawskiego -63
liczbę oznaczającą numer telefonu alarmowego - 112
Dzięki ))


Odpowiedź :

Najpierw jak to liczyć.

Patrząc OD PRAWEJ po kolei mamy 2^0 (2 do potęgi 0), 2^1, 2^2, 2^3, ... itd.

Tam gdzie jest 0 - olewamy, nie liczymy

Tam gdzie jest 1 - liczymy

I wszystko co liczymy dodajemy do siebie.

Zera po lewej stronie można całkiem olać jeśli nie ma tam nigdzie żadnej jedynki. Np. 00000110 to to samo co 110, ale już 100000000110 nie można olać żadnego zera. Nie można też ignorować zer z prawej strony, np. 11000000000 to nie to samo co 11.

Np.

10010 -- patrząc od prawej:

0 - 2^0 olewamy

1 - 2^1 liczymy (już teraz zapisuję poniżej 2^1+)

0 - 2^2 olewamy

0 - 2^3 olewamy

1 - 2^4 liczymy (zapisuję poniżej po plusie 2^4)

Wyszło: 2^1 + 2^4 = 2 + 16 = 18

Nie wiem czy można korzystać z tablic potęgowania 2 - jeśli tak to sprawa jest prosta :) Jeśli nie to trochę trzeba pomyśleć.

Bierzemy pierwszą liczbę:

1952 - sprawdzamy jaka maksymalnie potęga liczby 2 nie przekroczy tej wartości. W naszym przypadku jest to 10 bo 2^10 to 1024, ale już 2^11 to 2048 - za dużo. Mamy więc 10 - do takiej maksymalnie potęgi musimy podnieść dwójkę żeby zapisać naszą liczbę binarnie. Jak wyżej wspomniałem pozycje od prawej liczy się od potęgi 0 więc nasza liczba będzie miała 11 znaków (od 0 do 10) - w systemie binarnym na pewno będzie miała postać : 1xxxxxxxxxx (jedynka i 10 x-ów).

Mamy pierwszą jedynkę, która daje 1024 (2^10). Zostało nam do zapisania binarnie

1952 - 1024 = 928.

Sprawdzamy znowu to samo - 2 do jakiej potęgi da nam liczbę mniejszą niż ta, którą sprawdzamy. Tylko teraz uwaga. Poruszamy się od 2^10 w dół - sprawdzamy 2^9, to jest 512. Jeśli 512 zawiera się w tym co nam zostało to dajemy kolejną jedynkę i dalej odejmujemy, jeśli nie to dajemy 0 i sprawdzamy kolejną potęgę (2^8). W tym przypadku 512 zawiera się w 928 więc dajemy kolejną jedynkę - wiemy już, że zapis binarny będzie taki: 11xxxxxxxxx (9 x-ów bo cała liczba ma mieć 11 jedynek lub zer). Liczymy dalej w ten sam sposób:

928 - 512 = 416

2^8 = 256

256 zawiera się w 416

Dajemy więc kolejną 1.

Nasza liczba będzie miała postać: 111xxxxxxxx

Liczymy dalej.

416 - 256 = 160

2^7 = 128

128 zawiera się w 160.

Dajemy kolejną 1.

Nasza liczba: 1111xxxxxxx

160 - 128 = 32

2^6 = 64

64 nie zawiera się w 32.

Dajemy 0.

Nasza liczba: 11110xxxxxx

Liczymy dalej.

2^5 = 32

32 zawiera się w 32.

Dajemy 1.

Nasza liczba: 111101xxxxx

32 - 32 = 0

Zostało nam 0 więc z całą pewnością możemy stwierdzić, że cała reszta x-ów to będą zera.

Zatem nasza liczba binarna to: 11110100000

(jak wyżej wspomniałem wszystkie zera z prawej strony są istotne. Jedno za dużo albo jedno za mało i cały wynik do bani :) )

Żeby sprawdzić wynik robimy:

od 2^0 do 2^4 olewamy bo mamy tam zera

2^5 - jest jedynka więc to trzeba policzyć

2^6 olewamy bo jest zero

od 2^7 do 2^10 liczymy bo są jedynki

Zatem:

2^5 + 2^7 + 2^8 + 2^9 + 2^10 = 32 + 128 + 256 + 512 + 1024 = 1952

Obliczenia dla kolejnych liczb wykonujemy tak samo.

Dla 170 - maksymalna potęga liczby 2 to 7 bo 2^8 to już za dużo (256). Więc nasza liczba w zapisie binarnym będzie miała 8 znaków i na pewno będzie 1 z lewej strony: 1xxxxxxxx.

170 - 128 = 42

2^6 = 64

64 nie zawiera się w 42 więc kolejna cyfra to 0 -> 10xxxxxx

2^5 = 32

32 zawiera się w 42 więc kolejna cyfra to 1 -> 101xxxxx

42 - 32 = 10

2^4 = 16

16 nie zawiera się w 10 więc kolejna cyfra to 0 -> 1010xxxx

2^3 = 8

8 zawiera się w 10 więc kolejna cyfra to 1 -> 10101xxx

10 - 8 = 2

2^2 = 4

4 nie zawiera się w 2 więc kolejna cyfra to 0 -> 101010xx

2^1 = 2

2 zawiera się w 2 i to dokładnie tyle ile potrzebujemy więc kolejna cyfra to 1 a wszystkie pozostałe x-y (akurat tylko 1) to będą 0 -> 10101010

Sprawdzenie:

2^1 + 2^3 + 2^5 + 2^7 = 2 + 8 + 32 + 128 = 170

Kolejne liczyć i sprawdzać tak samo :)

Powinno wyjść tak:

39 244 -> 1001100101001100

63 -> 111111

112 -> 1110000

Pozdrawiam