Arvude teisendamine erinevate arvusüsteemide vahel
Arvutitehnoloogias ja programmeerimises kasutatakse lisaks igapäevasele kümnendsüsteemile ehk detsimaalsüsteemile laialdaselt teisi arvusüsteeme. Binaar- ehk kahendsüsteem, oktaal- ehk kaheksandsüsteem ning heksadetsimaal- ehk kuueteistkümnendsüsteem on alustalad, mille abil esitatakse masinkoodi, mäluaadresse ja andmevooge.
Binaar-/heksakonverter võimaldab reaalajas teisendada arve nende nelja süsteemi vahel. Kui sisestate arvu mistahes väljale, uuenevad ülejäänud kolm välja viivitamatult. Tööriist toetab järgmisi sisestusvorminguid:
- Binaarne (2): Koosneb ainult numbritest 0 ja 1.
- Oktaalne (8): Kasutab numbreid 0–7.
- Detsimaalne (10): Tavapärane kümnendsüsteem numbritega 0–9.
- Heksadetsimaalne (16): Kasutab numbreid 0–9 ja tähti A–F. Väljundis kuvatakse heksadetsimaalarvud alati suurtähtedega.
Arvude sisestamisel on lubatud kasutada eesliiteid 0b (binaarne), 0o (oktaalne) või 0x (heksadetsimaalne), samuti märgiga arve, ümbritsevaid tühikuid, alakriipse ja tühikutest koosnevaid eraldajaid. Kui sisestatud väärtus sisaldab valitud süsteemile lubamatuid sümboleid, kuvatakse veateade "Selle arvusüsteemi jaoks vigane arv – kontrollige märke, mida see süsteem ei tohi sisaldada.". Eduka teisenduse järel on olekuks "Konverteeritud.".
Suurte ja negatiivsete arvude käsitlemine ilma ümardamiseta
Erinevalt paljudest kalkulaatoritest, mis piirduvad standardsete 32-bitiste või 64-bitiste ujukomaarvudega, kasutab see konverter arvude parsimiseks ja vormindamiseks BigInt-andmetüüpi. See võimaldab täpset teisendust ilma ümardamiseta, toetades suuri täisarve pikkusega kuni 4096 märki.
Negatiivsete arvude teisendamisel säilib miinusmärk arvu ees igas arvusüsteemis. Kuna tööriist ei kasuta fikseeritud bitilaiusega kahendtäiendit (two's complement), esitatakse negatiivsed väärtused otse vastava süsteemi märgiga arvuna. See tagab matemaatilise täpsuse sõltumata sellest, kui suureks arv muutub.
Teksti ja baitide vaheline kodeerimine UTF-8 standardis
Lisaks puhastele arvudele võimaldab tööriist teisendada teksti baitideks ja vastupidi. Teksti kodeerimisel baitideks kasutatakse universaalset UTF-8 standardit, kus iga märk esitatakse ühe või mitme baidiga.
Tekstirežiimis saab valida nelja erineva baidivormingu vahel:
- Binaarne (baidid esitatakse 8-bitiste rühmadena, vajadusel lisatakse ette nullid).
- Oktaalne (baidid esitatakse 3-bitiste rühmadena, vajadusel lisatakse ette nullid).
- Detsimaalne (baite ei täideta eesolevate nullidega).
- Heksadetsimaalne (baidid esitatakse 2-bitiste rühmadena, vajadusel lisatakse ette nullid).
Teksti teisendamisel baitideks on maksimaalne lubatud sisendi pikkus 200 000 märki. Selle piirangu ületamisel kuvatakse veateade "Sisend on selle tööriista jaoks liiga pikk – proovige lühemat sisendit.". Pärast edukat kodeerimist kuvatakse olek "Kodeeritud.".
Baitide dekodeerimine tagasi tekstiks
Kui soovite baidikoode tagasi tekstiks teisendada, peavad sisestatud väärtused vastama valitud arvusüsteemile. Baidikoode võib eraldada tühikute või komadega. Iga sisestatud väärtus peab esindama täpselt ühte baiti ehk olema valitud arvusüsteemis vahemikus 0–255.
Dekodeerimisel rakenduvad järgmised reeglid ja piirangud:
- Kui sisestatud kood sisaldab sümboleid, mis ei kuulu valitud arvusüsteemi, või kui mõni väärtus jääb väljapoole vahemikku 0–255, kuvatakse veateade "Vigased baidikoodid – iga väärtus peab valitud arvusüsteemis olema vahemikus 0–255.".
- Kuna dekodeerimine toimub UTF-8 standardi alusel, peab baidijada moodustama korrektse UTF-8 voo. Vigase baidijada puhul kuvatakse tõrge "Need baidid ei ole korrektne UTF-8, mistõttu ei saa neid tekstina kuvada.".
Edukalt lõpetatud dekodeerimise järel kuvatakse olekuteade "Dekodeeritud.". Sisestusväljade tühjendamisel nupuga "Tühjenda" kuvatakse olekuks "Tühjendatud.".
Andmete privaatsus ja kohalik töötlus
Konverteri kasutamisel on tagatud andmete privaatsus. Iga teisendus toimub teie brauseris. Teie arvud ja tekstid ei lahku kunagi teie seadmest, mis tähendab, et sisestatud andmeid ei edastata välistesse serveritesse ega salvestata kolmandate osapoolte poolt.
Korduma kippuvad küsimused
Mida ma saan siin konverteerida?
Kahte asja. Arvurežiim seob omavahel binaar-, oktaal-, detsimaal- ja heksadetsimaalarvud – muutes ühte välja, uuenevad teised koheselt. Tekstirežiim teisendab mis tahes teksti baitideks teie valitud arvusüsteemis ja loeb need baidid tagasi tekstiks.
Kas see toetab ka negatiivseid ja väga suuri arve?
Jah. Negatiivsed arvud säilitavad miinusmärgi igas arvusüsteemis ning suuruse piirangut praktiliselt pole – väärtused teisendatakse täpselt, ilma ümardamiseta. Fikseeritud laiusega kahendtäiendit (two's complement) ei kuvata, kuna see omab mõtet alles konkreetse bitilaiuse valimisel.
Kas minu sisestatud andmeid saadetakse kuhugi?
Ei. Kõik arvutused tehakse kohapeal teie brauseris, seega midagi sisestatut serverisse ei saadeta.
Miks kuvatakse baitide dekodeerimisel UTF-8 viga?
See viga ilmneb siis, kui sisestatud baidijada ei vasta korrektsele UTF-8 kodeeringule. UTF-8 kasutab teatud märkide esitamiseks mitmebaidiseid jadasid ning kui need jadaosad on vigased või puudulikud, ei ole võimalik baite tekstiks tagasi teisendada.