Skaičiavimo sistemų keitimo skaičiuoklė
Konvertuokite sveikąjį skaičių į dvejetainę, aštuntainę, dešimtainę ir šešioliktainę sistemas.
Kaip naudotis šia skaičiavimo sistemų keitimo skaičiuokle
- Įveskite sveikąjį skaičių
Lauke „Sveikasis skaičius“ įveskite neneigiamą sveikąjį skaičių (pvz., 255 arba 4096).
- Peržiūrėkite dvejetainę reikšmę
Dvejetainė reikšmė rodo skaičių dvejetainėje sistemoje.
- Patikrinkite aštuntainę ir šešioliktainę
Peržiūrėkite aštuntainės ir šešioliktainės sistemos rezultatus kompaktiškam atvaizdavimui.
- Patikrinkite dešimtainę
Dešimtainė išvestis patvirtina pradinę reikšmę kryžminei patikrai.
Kaip veikia ši skaičiavimo sistemų keitimo skaičiuoklė
Ši skaičiavimo sistemų keitimo skaičiuoklė paima sveikąjį skaičių dešimtainėje sistemoje (pagrindas 10) ir pateikia jį dvejetainėje (pagrindas 2), aštuntainėje (pagrindas 8) bei šešioliktainėje (pagrindas 16) sistemose – tai keturios dažniausiai skaičiavimo technikoje naudojamos skaičiavimo sistemos. Kiekviena pozicinė skaičiavimo sistema veikia tuo pačiu principu: kiekviena skaitmens pozicija atitinka nuoseklų pagrindo laipsnį, o skaičiaus vertė yra kiekvieno skaitmens, padauginto iš jo pozicinio svorio, suma. Skaičiavimo sistemų keitimas yra pagrindinė operacija žemo lygio programavime, skaitmeninės logikos projektavime, tinklų inžinerijoje (MAC ir IPv6 adresai), CSS spalvų koduose, Unix failų leidimų kaukėse ir atminties adresų tikrinime derinimo metu.
Pakartotinis dalijimas: padalykite N iš tikslinio pagrindo R, užrašykite liekaną, kartokite su dalmeniu, kol jis pasieks 0, tada perskaitykite liekanas atvirkštine tvarka Konvertuokite dešimtainį skaičių 255 į dvejetainį, aštuntainį ir šešioliktainį. Dvejetainei sistemai (R = 2): 255 ÷ 2 = 127 liekana 1, 127 ÷ 2 = 63 L 1, 63 ÷ 2 = 31 L 1, 31 ÷ 2 = 15 L 1, 15 ÷ 2 = 7 L 1, 7 ÷ 2 = 3 L 1, 3 ÷ 2 = 1 L 1, 1 ÷ 2 = 0 L 1. Skaitant liekanas iš apačios į viršų: 11111111. Aštuntainei sistemai (R = 8): 255 ÷ 8 = 31 L 7, 31 ÷ 8 = 3 L 7, 3 ÷ 8 = 0 L 3 → 377. Šešioliktainei sistemai (R = 16): 255 ÷ 16 = 15 L 15 (F), 15 ÷ 16 = 0 L 15 (F) → FF.
Dešimtainis 4096 → dvejetainis 1000000000000, aštuntainis 10000, šešioliktainis 1000. Naudinga suprasti, kad 4 KiB = 4096 baitai.
Dešimtainis 15 → dvejetainis 1111, aštuntainis 17, šešioliktainis F. Kiekvienas šešioliktainis skaitmuo atitinka lygiai keturis bitus; F = 1111.
- ✓ Įvestis yra neneigiamas sveikasis skaičius (nulis arba teigiamas sveikasis skaičius). Trupmeninėms reikšmėms ir neigiamiems skaičiams reikalingi išplėstiniai algoritmai (pvz., papildomas kodas ženkliniams dvejetainiams skaičiams), kurie nepatenka į šio įrankio sritį.
- ✓ Šešioliktainiai skaitmenys virš 9 žymimi didžiosiomis raidėmis A–F, laikantis daugumos programavimo kalbų, RFC ir techninės įrangos dokumentacijos konvencijų.
- ✓ Nulinės reikšmės skaičiaus pradžioje rezultate praleidžiamos. Fiksuoto pločio reprezentacijoms (pvz., 8 bitų arba 32 bitų dvejetainiams skaičiams) papildykite rezultatą rankiniu būdu iki norimo ilgio.
- ✓ Skaičiuoklė priima tik neneigiamus sveikuosius skaičius. Reikšmės, didesnės nei 2^53 − 1 (JavaScript „Number.MAX_SAFE_INTEGER“), nepriimamos, kad rodomi skaitmenys išliktų tikslūs.
- Kiekvienas šešioliktainis skaitmuo atitinka lygiai keturis dvejetainius skaitmenis (bitus), o kiekvienas aštuntainis skaitmuo – lygiai tris bitus. Šis ryšys leidžia greitai mintyse konvertuoti tarp šešioliktainės, aštuntainės ir dvejetainės sistemų, kai įsimenate 16 pusbaičių (angl. nibble) modelių.
- Dažnos reikšmės, kurias verta įsiminti: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4 294 967 295 (didžiausias 32 bitų beženklis sveikasis skaičius).
- „Unix“ failų leidimai naudoja aštuntainę sistemą: 755 reiškia rwxr-xr-x (savininko skaitymas/rašymas/vykdymas, grupės ir kitų skaitymas/vykdymas). Kiekvienas aštuntainis skaitmuo koduoja tris leidimų bitus.
- CSS šešioliktainiai spalvų kodai yra trys sujungtos šešioliktainės baitų vertės, nurodančios raudonos, žalios ir mėlynos spalvų kanalus – pvz., #FF8800 yra 255 raudonos, 136 žalios, 0 mėlynos.
- Pozicinių skaičiavimo sistemų teorija — Knuth, D. E., „The Art of Computer Programming“, 2 tomas: „Seminumerical Algorithms“, 4.1 skyrius.
- IEEE 754-2019 — slankiojo kablelio aritmetikos standartas (sveikųjų skaičių vaizdavimo kontekstas).
- RFC 4291 — IP 6-osios versijos adresavimo architektūra (šešioliktainis IPv6 žymėjimas).
Skaičiavimo sistemų supratimas kompiuterijoje
Kiekviena pozicinė skaičiavimo sistema naudoja pagrindą (radix) ir kiekvienam skaitmeniui priskiria svorį pagal jo poziciją. Dešimtainėje sistemoje (pagrindas 10) dešiniausias skaitmuo yra vienetai, kitas – dešimtys, tada šimtai. Dvejetainė sistema (pagrindas 2) naudoja tik 0 ir 1, tiesiogiai atitinkančius tranzistorių įjungimo/išjungimo būsenas. Aštuntainė sistema (pagrindas 8) sugrupuoja po tris bitus vienam skaitmeniui, o šešioliktainė (pagrindas 16) – po keturis bitus, naudojant A–F raides reikšmėms nuo 10 iki 15. Konvertavimas tarp pagrindų atliekamas pakartotinai dalijant: padalykite skaičių iš tikslinio pagrindo, užrašykite liekaną, kartokite su dalmeniu iki nulio, tada perskaitykite liekanas atvirkštine tvarka. Šis algoritmas yra visų programavimo sistemų pagrindų konvertavimo pagrindas.
Praktiniai pagrindų konvertavimo pavyzdžiai programuotojams
Programuotojai naudoja pagrindų konvertavimą tikrindami atminties išrašus, derindami bitų operacijas, interpretuodami failų leidimus ir dirbdami su spalvų kodais. Unix failų leidimai (pvz., 755) yra aštuntainiai: kiekvienas skaitmuo koduoja savininko, grupės ir kitų skaitymo/rašymo/vykdymo teises. CSS šešioliktainės spalvos, tokios kaip #FF8800, yra trys sujungti baitai šešioliktainiu formatu. IPv6 adresai rašomi šešioliktainiu formatu. Bitų kaukės ir vėliavėlės dažnai išreiškiamos šešioliktainiu formatu dėl skaitomumo (0xFF baito kaukei, 0xFFFF 16 bitų). Derinant žemo lygio kodą ar tinklo protokolus, konvertavimas tarp dešimtainės, šešioliktainės ir dvejetainės sistemų greitai atskleidžia pagrindinius bitų modelius.
Skaičiavimo sistemų keitimo skaičiuoklės DUK
Kodėl kompiuterijoje naudojamos dvejetainė, aštuntainė ir šešioliktainė sistemos?
Dvejetainė sistema tiesiogiai atitinka tranzistorių įjungimo/išjungimo būsenas, todėl ji yra gimtoji aparatinės įrangos kalba. Aštuntainė ir šešioliktainė sistemos yra glaustas dvejetainės sistemos trumpinys – vienas šešioliktainis skaitmuo atitinka lygiai keturis bitus, o vienas aštuntainis – tris bitus – todėl programuotojai jas naudoja adresams, bitų kaukėms ir spalvų kodams užrašyti trumpiau nei ilgas dvejetaines eilutes.
Kaip konvertuoti kita kryptimi (pvz., iš šešioliktainės į dešimtainę)?
Padauginkite kiekvieną skaitmenį iš pagrindo laipsnio pagal jo poziciją ir sudėkite rezultatus. Pavyzdžiui, šešioliktainis 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 dešimtainėje sistemoje.
Kas nutinka su labai dideliais skaičiais?
Skaičiuoklė priima tik vertes iki JavaScript saugaus sveikojo skaičiaus ribos: 2^53 − 1 (9 007 199 254 740 991). Didesni skaičiai atmetami, nes naršyklėje gali būti prarasti mažiausiai reikšmingi skaitmenys.
Ar galiu konvertuoti neigiamus skaičius arba trupmenas?
Šis įrankis apdoroja neneigiamus sveikuosius skaičius. Neigiami sveikieji skaičiai kompiuterijoje paprastai vaizduojami naudojant papildomąjį kodą fiksuoto pločio bitais, o trupmeninės reikšmės naudoja IEEE 754 slankiojo kablelio kodavimą – abiem atvejais reikalingi papildomi parametrai, kurių ši skaičiuoklė nerenka.
Kodėl kode rodomas priešdėlis 0x, o rezultate – ne?
Priešdėlis 0x (taip pat 0b dvejetainei, 0o aštuntainei sistemai) yra specifinė programavimo kalbos sintaksė, nurodanti kompiliatoriui ar interpretatoriui, kokios skaičiavimo sistemos tikėtis. Skaičiuoklė pateikia gryną skaitmenų eilutę be priešdėlio, kad ją būtų galima naudoti bet kokiame kontekste.