Kas ir pozicionālā sistēma
Decimālajā skaitlī 4 095 cipars 4 nav vērts 4: tas ir vērts 4 000, jo atrodas tūkstošu vietā. Katra pozīcija reizina ciparu ar 10 pakāpi (1, 10, 100, 1 000…). Tā ir pozicionālā sistēma, bet bāze ir dažādo izmantoto ciparu skaits: decimālajā tie ir desmit.
Binārā sistēma darbojas tāpat, bet ar bāzi 2: pastāv tikai 0 un 1, un katra vieta ir divreiz vērtīgāka par iepriekšējo. Heksadecimālā sistēma izmanto bāzi 16: sešpadsmit cipari ir no 0 līdz 9 un burti no A līdz F, un katra vieta ir 16 reizes vērtīgāka par iepriekšējo. Datori strādā binārajā sistēmā, jo shēmai jāatšķir tikai divi stāvokļi (izslēgts un ieslēgts), un heksadecimālā sistēma ir īss veids, kā pierakstīt šos bitus.
| Pozīcija (no labās uz kreiso) | Vērtība binārajā | Vērtība heksadecimālajā |
|---|---|---|
| 1. | 1 | 1 |
| 2. | 2 | 16 |
| 3. | 4 | 256 |
| 4. | 8 | 4 096 |
| 5. | 16 | 65 536 |
| 6. | 32 | 1 048 576 |
| 7. | 64 | 16 777 216 |
| 8. | 128 | 268 435 456 |
No bināra uz decimālu ar rokām
Pierakstiet katru ciparu ar tā vietas vērtību un saskaitiet tikai tās vietas, kur ir 1. Piemērs ar 1101: no labās uz kreiso vietu vērtības ir 1, 2, 4 un 8.
- Uzrakstiet skaitli un zem tā katras pozīcijas vērtību: 1 1 0 1 virs 8 4 2 1.
- Paskatieties, kas ir katrā vietā: 1 vietā 8, 1 vietā 4, 0 vietā 2 un 1 vietā 1.
- Ignorējiet vietas, kur ir 0 (šeit, vietu 2).
- Saskaitiet: 8 + 4 + 0 + 1 = 13. Tātad 1101 binārajā sistēmā ir 13 decimālajā.
Ar vairāk cipariem ir tāpat: 11111111 ir 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, lielākā vērtība, kas ietilpst 8 bitos. Un 10110110 ir 128 + 32 + 16 + 4 + 2 = 182.
No decimāla uz bināru ar secīgu dalīšanu
Skaitli dala ar 2 atkal un atkal, pierakstot katras dalīšanas atlikumu (vienmēr 0 vai 1), līdz sasniedz dalījumu 0. Atlikumi, lasot no apakšas uz augšu, veido bināro skaitli. Piemērs ar 45:
- 45 ÷ 2 = 22, atlikums 1
- 22 ÷ 2 = 11, atlikums 0
- 11 ÷ 2 = 5, atlikums 1
- 5 ÷ 2 = 2, atlikums 1
- 2 ÷ 2 = 1, atlikums 0
- 1 ÷ 2 = 0, atlikums 1
Lasot atlikumus no apakšas uz augšu, iznāk 101101. Lai pārbaudītu, saskaitiet: 32 + 8 + 4 + 1 = 45.
Ir arī alternatīva metode, kas daudziem patīk labāk: atņemt divnieka pakāpes no lielākās uz mazāko. Skaitlim 200: der 128 (paliek 72), der 64 (paliek 8), neder 32, 16, bet der 8 (paliek 0). Izmantotās vietas ir 128, 64 un 8, tātad 200 = 11001000.
Heksadecimālā sistēma: sešpadsmit cipari un tabula pa rokai
Tā kā ciparu 10 līdz 15 nav, izmanto burtus A, B, C, D, E un F. Viens heksadecimālais cipars precīzi atbilst četriem bitiem (viens „nibble”), un tāpēc tas ir tik ērti: baitu, kas ir 8 biti, pieraksta tikai ar diviem heksadecimāliem cipariem.
Lai pārvērstu heksadecimālu skaitli decimālā, reiziniet katru ciparu ar tās vietas 16 pakāpi un saskaitiet. Piemēram, 3F = 3 × 16 + 15 = 63 un A3 = 10 × 16 + 3 = 163.
| Decimālais | Binārais (4 biti) | Oktālais | Heksadecimālais |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Kāpēc izmanto heksadecimālo sistēmu: baiti, krāsas un adreses
Baits ir 8 biti un svārstās no 0 līdz 255 (00000000 līdz 11111111). Rakstīt bitus ar rokām ir lēni un kļūdaini; heksadecimālajā sistēmā tas pats baits ir divas rakstzīmes, no 00 līdz FF. Lai pārietu no bināra uz heksadecimālu, sadaliet bitus četru grupās no labās puses un aizstājiet katru grupu ar tās ciparu no tabulas. Piemērs: 11010111 sadalās 1101 un 0111, kas ir D un 7, tātad tas ir D7. Decimālajā tas ir 13 × 16 + 7 = 215.
Zināmākais gadījums ir tīmekļa krāsas. Krāsā #FF8800 ir trīs baiti: FF sarkanajam (255), 88 zaļajam (136) un 00 zilajam (0). Tā ir intensīva oranža krāsa: viss sarkanais, nedaudz vairāk par pusi zaļā un nekāda zilā. Heksadecimālā sistēma parādās arī atmiņas adresēs, kļūdu kodos un tīkla identifikatoros.
No teksta uz bināru ar ASCII
Dators saglabā katru burtu kā skaitli, bet šo skaitli kā bitus. ASCII tabulā A ir 65, kas 8 bitu binārajā ir 01000001. Vārds „Hi” ir divi burti: H ir 72 (01001000) un i ir 105 (01101001), tāpēc to raksta 01001000 01101001. Vārdam „Hola” tie ir 72, 111, 108 un 97, tas ir 01001000 01101111 01101100 01100001, bet heksadecimālajā 48 6F 6C 61.
Rīks izmanto UTF-8 kodējumu: pamata angļu burtiem katra rakstzīme aizņem vienu 8 bitu baitu, bet burts ar garumzīmi vai mīkstinājuma zīmi (piemēram, ā vai š) un emocijzīme aizņem vairākus baitus, tāpēc dod vairāk nekā 8 bitus. Piemēram, burts ñ ir divi baiti: 11000011 10110001 (C3 B1 heksadecimālajā).
Kā to visu izdarīt ar rīku
Pārveidotājs „Binārs, decimāls un heksadecimāls” noder, lai pārbaudītu aprēķinus ar rokām vai atrisinātu garus skaitļus bez kļūdām.
- Ierakstiet skaitli tās sistēmas laukā: „Decimālais (10. sistēma)”, „Binārais (2. sistēma)”, oktālais vai „Heksadecimālais (16. sistēma)”. Pārējie trīs aizpildās paši.
- Ja cipars neatbilst sistēmai (piemēram, 2 binārajā), rīks par to paziņo.
- Tekstam ierakstiet to laukā „Teksts” un skatiet „Binārais (8 biti uz rakstzīmi)” un heksadecimālo pa baitiem. Varat arī ielīmēt bitus 8 grupās, lai atgrieztos pie teksta.
- Neparastām sistēmām izmantojiet „Jebkura sistēma (no 2 līdz 36)”: izvēlaties avota sistēmu, mērķa sistēmu un skaitli.
Ierobežojumi: rīks pārvērš tikai nenegatīvus veselus skaitļus (bez decimāldaļām un zīmes) un neliek sākuma nulles jūsu vietā, tāpēc, ja vēlaties fiksētus 8 bitus, tie jāpapildina ar rokām (13 ir 00001101). Nekas, ko rakstāt, neatstāj jūsu pārlūkprogrammu.
Biežākās kļūdas
- Atlikumu lasīšana otrādi: secīgajā dalīšanā pirmais atlikums ir galējais labās puses cipars, nevis galējais kreisās puses cipars.
- Sākuma nulles aizmiršana, kad tās vajadzīgas: 13 ir 1101, bet kā baits tas ir 00001101. Tas ir svarīgi, ja garums ir daļa no datiem, piemēram, krāsā vai tīkla maskā.
- Burta O sajaukšana ar nulli vai heksadecimālā B (11) ar 8 kopējot. Heksadecimālajā sistēmā burti ar lielo vai mazo burtu nozīmē vienu un to pašu, bet tie nav tas pats, kas cipars.
- Prefiksa 0x vai zīmes # atstāšana pārvēršanas laikā: tās ir tikai norādes, ka skaitlis ir heksadecimāls, un pirms ielīmēšanas tās jānoņem.
- Domāt, ka 10 binārajā ir desmit: tas ir divi. Tas pats „10” ir 2, 10 vai 16 atkarībā no sistēmas.
Atrisināti uzdevumi treniņam
Mēģiniet atrisināt katru, pirms skatāties atbildi, un pēc tam pārbaudiet ar rīku.
- Pārvērsiet 10110110 decimālā un heksadecimālā. Atbilde: 128 + 32 + 16 + 4 + 2 = 182; četru grupās 1011 0110 = B6.
- Pārvērsiet 200 binārā un heksadecimālā. Atbilde: 11001000 un C8 (12 × 16 + 8 = 200).
- Pārvērsiet 7F binārā. Atbilde: 7 = 0111 un F = 1111, tātad 01111111, kas decimālajā ir 127.
- Uzrakstiet „OK” binārajā. Atbilde: O ir 79 un K ir 75, tas ir 01001111 01001011.
Biežāk uzdotie jautājumi
Kā pārvērst 1101 no bināra uz decimālu?
Saskaitiet to vietu vērtības, kur ir 1: 8 + 4 + 1 = 13. Otrais cipars no labās ir 0, tāpēc 2 netiek pieskaitīts.
Cik ir 255 binārajā un heksadecimālajā sistēmā?
255 ir 11111111 binārajā un FF heksadecimālajā. Tā ir lielākā vērtība, kas ietilpst 8 bitu baitā.
Kāpēc heksadecimālā sistēma izmanto burtus?
Jo tai vajag sešpadsmit dažādus simbolus, bet decimālā sistēma dod tikai desmit (0 līdz 9). Tāpēc A ir 10, B ir 11, C ir 12, D ir 13, E ir 14 un F ir 15.
Cik dažādu skaitļu var uzrakstīt ar 8 bitiem?
256, no 0 līdz 255. Kopumā ar n bitiem var attēlot 2 pakāpē n vērtības.
Vai rīks pārvērš negatīvus skaitļus vai skaitļus ar decimāldaļām?
Nē, tikai nenegatīvus veselus skaitļus. Tekstam tiek izmantots UTF-8, tāpēc burti ar garumzīmēm un emocijzīmes dod vairāk nekā 8 bitus.