Kas yra pozicinė skaičiavimo sistema
Dešimtainiame skaičiuje 4 095 skaitmuo 4 nereiškia 4: jis reiškia 4 000, nes yra tūkstančių vietoje. Kiekviena pozicija skaitmenį padaugina iš 10 laipsnio (1, 10, 100, 1 000…). Tai ir yra pozicinė sistema, o jos pagrindas yra skirtingų naudojamų skaitmenų skaičius: dešimtainėje jų yra dešimt.
Dvejetainė sistema veikia taip pat, tik jos pagrindas yra 2: yra tik 0 ir 1, o kiekviena vieta dvigubai vertingesnė už ankstesnę. Šešioliktainė sistema naudoja 16 pagrindą: šešiolika skaitmenų yra nuo 0 iki 9 ir raidės nuo A iki F, o kiekviena vieta 16 kartų vertingesnė už ankstesnę. Kompiuteriai dirba dvejetainėje sistemoje, nes grandinė turi atskirti tik dvi būsenas (išjungta ir įjungta), o šešioliktainė sistema yra trumpas tų bitų užrašymo būdas.
| Pozicija (iš dešinės į kairę) | Vertė dvejetainėje | Vertė šešioliktainėje |
|---|---|---|
| 1-a | 1 | 1 |
| 2-a | 2 | 16 |
| 3-ia | 4 | 256 |
| 4-a | 8 | 4 096 |
| 5-a | 16 | 65 536 |
| 6-a | 32 | 1 048 576 |
| 7-a | 64 | 16 777 216 |
| 8-a | 128 | 268 435 456 |
Iš dvejetainio į dešimtainį ranka
Kiekvienas skaitmuo užrašomas su savo vietos verte ir sudedamos tik tos vietos, kuriose yra 1. Pavyzdys su 1101: iš dešinės į kairę vietų vertės yra 1, 2, 4 ir 8.
- Užrašykite skaičių, o po juo – kiekvienos pozicijos vertę: 1 1 0 1 virš 8 4 2 1.
- Pažiūrėkite, kas yra kiekvienoje vietoje: 1 aštuonetų vietoje, 1 ketvertų vietoje, 0 dvejetų vietoje ir 1 vienetų vietoje.
- Ignoruokite vietas, kuriose yra 0 (čia – dvejetų vietą).
- Sudėkite: 8 + 4 + 0 + 1 = 13. Taigi 1101 dvejetainėje sistemoje yra 13 dešimtainėje.
Su daugiau skaitmenų yra taip pat: 11111111 yra 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, didžiausia reikšmė, tilpstanti į 8 bitus. O 10110110 yra 128 + 32 + 16 + 4 + 2 = 182.
Iš dešimtainio į dvejetainį dalijant iš eilės
Skaičius dalijamas iš 2 vėl ir vėl, užrašant kiekvieno dalijimo liekaną (visada 0 arba 1), kol gaunamas dalmuo 0. Liekanos, skaitomos iš apačios į viršų, yra dvejetainis skaičius. Pavyzdys su 45:
- 45 ÷ 2 = 22, liekana 1
- 22 ÷ 2 = 11, liekana 0
- 11 ÷ 2 = 5, liekana 1
- 5 ÷ 2 = 2, liekana 1
- 2 ÷ 2 = 1, liekana 0
- 1 ÷ 2 = 0, liekana 1
Skaitant liekanas iš apačios į viršų, gaunama 101101. Patikrinimui sudėkite: 32 + 8 + 4 + 1 = 45.
Yra ir alternatyvus būdas, kurį daugelis mėgsta labiau: atimti dvejeto laipsnius nuo didžiausio iki mažiausio. Su 200: telpa 128 (lieka 72), telpa 64 (lieka 8), netelpa 32 ir 16, bet telpa 8 (lieka 0). Panaudotos vietos yra 128, 64 ir 8, todėl 200 = 11001000.
Šešioliktainė sistema: šešiolika skaitmenų ir lentelė po ranka
Kadangi nėra skaitmenų 10–15, naudojamos raidės A, B, C, D, E ir F. Vienas šešioliktainis skaitmuo tiksliai atitinka keturis bitus (pusbaitį, angl. „nibble“), todėl ji tokia patogi: baitas, sudarytas iš 8 bitų, užrašomas vos dviem šešioliktainiais skaitmenimis.
Norėdami paversti šešioliktainį skaičių dešimtainiu, kiekvieną skaitmenį padauginkite iš jo vietos 16 laipsnio ir sudėkite. Pavyzdžiui, 3F = 3 × 16 + 15 = 63, o A3 = 10 × 16 + 3 = 163.
| Dešimtainis | Dvejetainis (4 bitai) | Aštuntainis | Šešioliktainis |
|---|---|---|---|
| 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 |
Kodėl naudojama šešioliktainė sistema: baitai, spalvos ir adresai
Baitą sudaro 8 bitai, ir jis gali įgyti reikšmes nuo 0 iki 255 (00000000–11111111). Bitus ranka rašyti lėta ir lengva suklysti; šešioliktainėje sistemoje tas pats baitas yra du simboliai, nuo 00 iki FF. Norėdami iš dvejetainės sistemos pereiti į šešioliktainę, suskirstykite bitus į grupes po keturis nuo dešinės ir kiekvieną grupę pakeiskite lentelės skaitmeniu. Pavyzdys: 11010111 skaidoma į 1101 ir 0111, tai yra D ir 7, taigi reikšmė yra D7. Dešimtainiu pavidalu tai 13 × 16 + 7 = 215.
Žinomiausias atvejis yra interneto spalvos. Užraše #FF8800 yra trys baitai: FF raudonai (255), 88 žaliai (136) ir 00 mėlynai (0). Tai sodri oranžinė: visa raudona, kiek daugiau nei pusė žalios ir jokios mėlynos. Šešioliktainė sistema naudojama ir atminties adresuose, klaidų kodų ir tinklo identifikatoriuose.
Iš teksto į dvejetainį su ASCII
Kompiuteris saugo kiekvieną raidę kaip skaičių, o tą skaičių kaip bitus. ASCII lentelėje A yra 65, o 8 bitų dvejetainiu pavidalu tai 01000001. Žodis „Hi“ yra dvi raidės: H yra 72 (01001000), o i yra 105 (01101001), todėl jis užrašomas 01001000 01101001. „Hola“ atveju tai 72, 111, 108 ir 97, tai yra 01001000 01101111 01101100 01100001, o šešioliktainiu pavidalu 48 6F 6C 61.
Įrankis naudoja UTF-8 koduotę: pagrindinėms anglų kalbos raidėms kiekvienas simbolis užima vieną 8 bitų baitą, bet lietuviška raidė su diakritiniu ženklu (pavyzdžiui, ą ar ė) ar jaustukas užima kelis baitus, todėl gaunama daugiau nei 8 bitai. Pavyzdžiui, raidė ą yra du baitai: 11000100 10000101 (C4 85 šešioliktainiu pavidalu).
Kaip visa tai padaryti su įrankiu
Keitiklis „Dvejetainis, dešimtainis ir šešioliktainis“ tinka jūsų skaičiavimams ranka patikrinti arba ilgiems skaičiams išspręsti be klaidų.
- Įrašykite skaičių tos sistemos laukelyje: „Dešimtainis (10 pagrindas)“, „Dvejetainis (2 pagrindas)“, aštuntainis arba „Šešioliktainis (16 pagrindas)“. Kiti trys užsipildo patys.
- Jei skaitmuo netinka sistemai (pavyzdžiui, 2 dvejetainėje), įrankis jus įspės.
- Tekstui įrašykite jį laukelyje „Tekstas“ ir pažiūrėkite į „Dvejetainis (8 bitai vienam simboliui)“ ir šešioliktainį pagal baitus. Taip pat galite įklijuoti bitus 8 bitų grupėmis, kad grįžtumėte prie teksto.
- Neįprastoms sistemoms naudokite „Bet kuri sistema (nuo 2 iki 36)“: pasirenkate pradinę sistemą, galutinę sistemą ir skaičių.
Apribojimai: konvertuojami tik neneigiami sveikieji skaičiai (be trupmenų ir ženklo), o pirmieji nuliai nepridedami už jus, todėl jei norite fiksuotų 8 bitų, turite papildyti ranka (13 yra 00001101). Niekas, ką įrašote, nepalieka jūsų naršyklės.
Dažniausios klaidos
- Skaityti liekanas atvirkščiai: dalijant iš eilės, pirmoji liekana yra skaitmuo dešiniausioje vietoje, o ne kairiausioje.
- Pamiršti pirmuosius nulius, kai jų reikia: 13 yra 1101, bet kaip baitas – 00001101. Tai svarbu, kai ilgis yra duomenų dalis, pavyzdžiui, spalvos ar tinklo kaukės atveju.
- Sumaišyti raidę O su nuliu arba šešioliktainį B (11) su 8 kopijuojant. Šešioliktainėje sistemoje raidės didžiosiomis ir mažosiomis reiškia tą patį, bet tai nėra tas pats, kas skaitmuo.
- Palikti priešdėlį 0x arba ženklą # konvertuojant: tai tik žymos, kad skaičius šešioliktainis, ir prieš įklijuojant jas reikia pašalinti.
- Manyti, kad 10 dvejetainėje yra dešimt: tai du. Tas pats „10“ reiškia 2, 10 arba 16 pagal sistemą.
Išspręsti pratimai
Pabandykite išspręsti kiekvieną, prieš žiūrėdami atsakymą, o paskui patikrinkite įrankiu.
- Paverskite 10110110 dešimtainiu ir šešioliktainiu. Atsakymas: 128 + 32 + 16 + 4 + 2 = 182; po keturis, 1011 0110 = B6.
- Paverskite 200 dvejetainiu ir šešioliktainiu. Atsakymas: 11001000 ir C8 (12 × 16 + 8 = 200).
- Paverskite 7F dvejetainiu. Atsakymas: 7 = 0111 ir F = 1111, taigi 01111111, o dešimtainiu pavidalu tai 127.
- Užrašykite „OK“ dvejetainiu pavidalu. Atsakymas: O yra 79, o K yra 75, tai yra 01001111 01001011.
Dažniausiai užduodami klausimai
Kaip paversti 1101 iš dvejetainio į dešimtainį?
Sudedate tų vietų vertes, kuriose yra 1: 8 + 4 + 1 = 13. Antrasis skaitmuo iš dešinės yra 0, todėl 2 nesumuojama.
Kiek yra 255 dvejetainėje ir šešioliktainėje sistemoje?
255 yra 11111111 dvejetainėje ir FF šešioliktainėje sistemoje. Tai didžiausia reikšmė, tilpstanti į 8 bitų baitą.
Kodėl šešioliktainėje sistemoje naudojamos raidės?
Todėl, kad reikia šešiolikos skirtingų simbolių, o dešimtainė sistema suteikia tik dešimt (0–9). Todėl A reiškia 10, B – 11, C – 12, D – 13, E – 14, o F – 15.
Kiek skirtingų skaičių galima užrašyti 8 bitais?
256, nuo 0 iki 255. Apskritai su n bitų galima pavaizduoti 2 pakeltą n laipsniu reikšmių.
Ar įrankis konvertuoja neigiamus skaičius ar skaičius su trupmenomis?
Ne, tik neneigiamus sveikuosius skaičius. Tekstui naudojamas UTF-8, todėl raidės su diakritikais ir jaustukai duoda daugiau nei 8 bitus.