Skaičių sistemų konvertavimas: dvejetainė, aštuntainė, dešimtainė ir šešioliktainė
Skaičių konvertavimas tarp skirtingų pagrindų yra pamatine kompiuterijos ir skaitmeninės elektronikos procedūra. Kiekviena sistema naudoja skirtingą skaitmenų rinkinį ir pozicinę vertę, o šis įrankis leidžia atlikti tikslius skaičiavimus nenaudojant apvalinimo.
- Dvejetainė (Bin): Naudoja pagrindą 2 ir tik du skaitmenis: 0 ir 1. Tai yra tiesioginė kompiuterio aparatinės įrangos kalba.
- Aštuntainė (Oct): Naudoja pagrindą 8 ir skaitmenis nuo 0 iki 7. Ši sistema istoriškai taikoma sistemų programavime, nes leidžia lengvai sugrupuoti po tris dvejetainius bitus.
- Dešimtainė (Dec): Kasdien naudojama žmonių skaičiavimo sistema, kurios pagrindas yra 10, o skaitmenys – nuo 0 iki 9.
- Šešioliktainė (Hex): Naudoja pagrindą 16, kur skaitmenys nuo 10 iki 15 yra žymimi raidėmis nuo A iki F. Ši sistema yra itin patogi programuotojams, nes vienas šešioliktainis skaitmuo tiksliai atitinka keturis dvejetainius bitus (pusbaitį).
Šis įrankis veikia dviem pagrindiniais režimais: skaičių konvertavimo ir teksto kodavimo į baitus bei atgal. Naudojant skaičių režimą, redaguojant bet kurį iš keturių laukų, kiti trys laukai yra atnaujinami akimirksniu.
Skaičių apdorojimo taisyklės ir didelių skaičių tikslumas
Skaičių režime įrankis palaiko įvairius įvesties formatus, kad naudotojams nereikėtų rankiniu būdu valyti duomenų. Įvestyje leidžiama naudoti:
- Neigiamus skaičius su minuso ženklu priekyje.
- Tarpus aplink skaičių arba skaičiaus viduje.
- Sistemų prefiksus:
0bdvejetainei,0oaštuntainei ir0xšešioliktaineiai sistemai. - Apatinius brūkšnius (
_), kurie dažnai naudojami programavimo kalbose didelių skaičių skaitomumui pagerinti.
Skaičiavimams atlikti naudojama BigInt technologija, užtikrinanti savitąjį tikslumą be jokių apvalinimo klaidų. Įrankis palaiko savavališko tikslumo sveikuosius skaičius, kurių ilgis gali siekti iki 4 096 simbolių. Tai reiškia, kad praktiškai nėra jokių dydžio apribojimų, o konvertavimo rezultatas visada išlieka matematiškai tikslus.
Neigiami skaičiai visose skaičiavimo sistemose išlaiko minuso ženklą priekyje. Įrankis nenaudoja fiksuoto bitų pločio papildomo kodo (angl. two's complement) formato, nes šis formatas reikalauja iš anksto nustatyto bitų skaičiaus (pavyzdžiui, 8, 16, 32 arba 64 bitų).
Jei įvestas skaičius neatitinka pasirinktos sistemos taisyklių (pavyzdžiui, dvejetainiame lauke įvedamas skaitmuo 2), sistema parodo klaidą: "Netinkamas skaičius šiai sistemai – patikrinkite, ar nėra neleistinų skaitmenų.". Sėkmingai atlikus konvertavimą, būsenos indikatorius rodo pranešimą "Konvertuota.".
Teksto ir baitų konvertavimas naudojant UTF-8
Teksto režimas leidžia konvertuoti įprastą tekstą į jo baitų reikšmes pasirinktoje sistemoje (dvejetainėje, aštuntainėje, dešimtainėje arba šešioliktainėje) ir atlikti atvirkštinį procesą.
Teksto kodavimui į baitus naudojamas UTF-8 standartas. Tai reiškia, kad kiekvienas simbolis, priklausomai nuo jo vietos Unicode lentelėje, gali būti užkoduotas nuo vieno iki keturių baitų. Pavyzdžiui, standartiniai ASCII simboliai užima vieną baitą, o lietuviškos raidės ar specialūs simboliai – daugiau.
Atliekant konvertavimą, taikomos šios išvesties formatavimo taisyklės:
- Dvejetainė išvestis: Kiekvienas baitas yra papildomas priekiniais nuliais iki 8 bitų ilgio.
- Aštuntainė išvestis: Kiekvienas baitas papildomas priekiniais nuliais iki 3 skaitmenų ilgio.
- Šešioliktainė išvestis: Kiekvienas baitas papildomas priekiniais nuliais iki 2 skaitmenų ilgio ir naudoja didžiąsias raides.
- Dešimtainė išvestis: Nuliais priekyje nepildoma.
Dekoduojant baitus atgal į tekstą, įvesties reikšmės gali būti atskirtos tarpais arba kableliais. Kiekviena įvesta reikšmė privalo atitikti vieno baito rėžius (nuo 0 iki 255 dešimtainėje sistemoje) pasirinktu pagrindu. Jei įvestyje aptinkami netinkami simboliai arba reikšmės, viršijančios vieno baito ribas, rodoma klaida: "Netinkami baitų kodai – kiekviena reikšmė turi būti vienas baitas (0–255) pasirinktoje sistemoje.".
Jei pateiktas baitų srautas neatitinka UTF-8 struktūros taisyklių, tekstas negali būti atkurtas ir įrankis pateikia klaidą: "Šie baitai nėra tinkamas UTF-8 tekstas, todėl jų negalima parodyti kaip teksto.". Maksimalus leidžiamas teksto įvesties ilgis yra 200 000 simbolių. Viršijus šią ribą, rodomas pranešimas: "Įvestis per ilga šiam įrankiui – bandykite naudoti trumpesnį tekstą.".
Sėkmingai užkodavus tekstą į baitus, rodoma būsena "Užkoduota.", o sėkmingai iškodavus baitus į tekstą – "Iškoduota.". Išvalius laukus, būsenos juostoje rodoma "Išvalyta.".
Duomenų apdorojimo privatumas
Naudojantis šiuo įrankiu, jūsų duomenų saugumas yra užtikrinamas techniniu lygmeniu. Kiekvienas konvertavimas vyksta jūsų naršyklėje. Jūsų skaičiai ir tekstas niekada nepalieka jūsų įrenginio, nes jokie duomenys nėra siunčiami į išorinius serverius. Visi skaičiavimai atliekami lokaliai jūsų pačių kompiuterio ar telefono procesoriaus ištekliais.
Dažniausiai užduodami klausimai (FAQ)
Ką galiu konvertuoti čia?
Duometis palaiko du režimus. Skaičių režimas susieja dvejetainius, aštuntainius, dešimtainius ir šešioliktainius skaičius – redaguojant bet kurį lauką, kiti atnaujinami akimirksniu. Teksto režimas paverčia bet kokį tekstą jo baitų reikšmėmis pasirinktoje skaičiavimo sistemoje ir nuskaito tuos baitus atgal į tekstą.
Ar palaikomi neigiami ir labai dideli skaičiai?
Taip. Neigiami skaičiai išlaiko minuso ženklą priekyje kiekvienoje sistemoje, o dydžio ribos praktiškai nėra – reikšmės konvertuojamos tiksliai, be apvalinimo. Čia nėra fiksuoto pločio papildomo kodo (angl. two's complement) vaizdo, nes jis prasmingas tik pasirinkus konkretų bitų plotį.
Ar mano įvestis kur nors siunčiama?
Ne. Viskas skaičiuojama lokaliai jūsų naršyklėje, todėl niekas, ką įvedate, nėra niekur siunčiama. Kiekvienas konvertavimas vyksta jūsų naršyklėje ir jūsų skaičiai bei tekstas niekada nepalieka jūsų įrenginio.
Kodėl gaunu klaidą apie netinkamą UTF-8 kodavimą?
Ši klaida atsiranda tada, kai bandoma dekoduoti baitų seką, kuri nesudaro taisyklingo UTF-8 simbolio. Kadangi tekstas yra koduojamas griežtai pagal UTF-8 standartą, bet koks baitų derinys, kuris pažeidžia šio standarto taisykles arba viršija leistinas reikšmes, negali būti paverstas skaitomu tekstu.