Czyli po co komu szesnastkowy
b pozycje od prawej mają wagi b⁰ = 1, b¹ = b, b² = b·b, b³ = b·b·b… Wartość liczby to suma iloczynów cyfra × waga pozycji. Tę jedną metodę stosuje się do każdej bazy.A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.1011₂ albo 0b1011 · 755₈ albo 0o755 · 2F₁₆ albo 0x2F albo #2F.Bo 16 = 2⁴ i 8 = 2³. Jedna cyfra szesnastkowa to dokładnie cztery bity, jedna cyfra ósemkowa to dokładnie trzy bity. Zamiana nie wymaga żadnego rachunku — wystarczy pociąć zapis binarny na kawałki i odczytać każdy osobno. Dwunastkowy takiej własności nie ma, więc nigdzie się nie przyjął.
bin → hex: tnij po cztery bity od prawej, każdą czwórkę zamień na cyfrę hex.
bin → oct: tnij po trzy bity od prawej. W drugą stronę tak samo, tylko odwrotnie — każdą cyfrę hex rozpisz na cztery bity, każdą cyfrę oct na trzy.
| bity | hex | bity | hex | bity | hex | bity | hex |
|---|---|---|---|---|---|---|---|
| 0000 | 0 | 0100 | 4 | 1000 | 8 | 1100 | C |
| 0001 | 1 | 0101 | 5 | 1001 | 9 | 1101 | D |
| 0010 | 2 | 0110 | 6 | 1010 | A | 1110 | E |
| 0011 | 3 | 0111 | 7 | 1011 | B | 1111 | F |
r = czytaj (4) · w = pisz (2) · x = wykonuj (1). Czyli 7 = 111 = rwx, 5 = 101 = r-x, 6 = 110 = rw-, 0 = 000 = ---.#RRGGBB, trzy pary cyfr szesnastkowych: czerwony, zielony, niebieski. Każda para to jeden bajt, czyli wartość od 00 = 0 do FF = 255.Rozpisz każdą liczbę przez wagi pozycji i podaj wynik dziesiętnie.
Wzór: 2503₁₀ = 2·1000 + 5·100 + 0·10 + 3·1 = ………
2503₁₀ = = 1011₂ = = 2F₁₆ = = 755₈ = = Co było wspólne we wszystkich czterech rachunkach?
Tnij po cztery bity od prawej. Bez dzielenia, bez kalkulatora.
11010110 → …… │ …… → hex 0x (dziesiętnie: )10101111 → …… │ …… → hex 0x (dziesiętnie: )0x3C → bin (dziesiętnie: )0xFF → bin (dziesiętnie: )Zapamiętaj wynik z podpunktu b — wróci w zadaniu 4.
chmodZdekoduj (cyfra → trzy bity → prawa):
| zapis ósemkowy | trzy razy po trzy bity | prawa | |
|---|---|---|---|
| a | 644 | ||
| b | 777 | ||
| c | 700 |
d) Zakoduj: właściciel może wszystko, grupa i reszta nic →
e) Który z zapisów 644 i 700 ustawisz na pliku z hasłami? Dlaczego?
Kolor #1e40af to granat z dzisiejszej prezentacji.
a) Rozłóż na składowe i zamień na dziesiętne:
1e → R = · 40 → G = · af → B =
b) W drugą stronę: kolor o składowych R = 255, G = 0, B = 0 zapiszesz jako #
c) Pytanie-pułapka. Który kolor jest jaśniejszy: #00FF00 czy #0000FF? Obie liczby mają tę samą wartość — FF = 255. Odpowiedź i uzasadnienie:
d) Wróć do zadania 2b. Co zauważasz?
Otwórz Thonny i wpisz w Shellu kolejno sześć linii — po każdej wciśnij Enter i przeczytaj wynik:
bin(200)
hex(255)
oct(493)
int('1101', 2)
int('ff', 16)
0xff + 1
Zapisz, co wypisał Python:
| wpisujesz | Python wypisuje |
|---|---|
bin(200) | |
hex(255) | |
oct(493) | |
int('1101', 2) | |
int('ff', 16) | |
0xff + 1 |
a) Teraz wpisz int('ff') — bez drugiego argumentu. Co się stało?
b) Dlaczego int('ff') się wywala, a int('ff', 16) nie?
c) Skąd znasz liczbę 493 z trzeciej linijki?
Wyszukaj trzy szesnastkowe liczby poza szkołą i zapisz, co znaczą:
a) kod błędu — w systemie, w grze albo w komunikacie aplikacji (np. 0x80070005):
b) adres MAC swojego telefonu — Wi-Fi → nazwa sieci → informacje o sieci / o urządzeniu. Ile ma cyfr szesnastkowych i ile to bajtów?
c) kolor w CSS — otwórz dowolną stronę, Ctrl+Shift+I → zakładka ze stylami; przepisz jeden kolor #RRGGBB i policz jego składowe dziesiętnie: