Számrendszer-átváltó kalkulátor
Egész szám átváltása kettes, nyolcas, tízes és tizenhatos számrendszerbe.
Hogyan használja ezt a számrendszer-átváltó kalkulátort
- Adja meg az egész számot
Írjon be egy nem negatív egész számot az Egész szám mezőbe (pl. 255 vagy 4096).
- Bináris érték leolvasása
A bináris érték a 2-es számrendszerbeli ábrázolást mutatja.
- Oktális és hexadecimális ellenőrzése
Tekintse meg az oktális és hexadecimális eredményeket a tömörebb ábrázolásért.
- Decimális ellenőrzése
A decimális kimenet az eredeti értéket igazolja vissza az ellenőrzéshez.
Hogyan működik ez a számrendszer-átváltó kalkulátor
Ez a számrendszer-átváltó kalkulátor egy decimális (10-es alapú) egész számot vált át bináris (2-es alapú), oktális (8-as alapú) és hexadecimális (16-os alapú) formátumba — ez az a négy számrendszer, amelyet a leggyakrabban használnak a számítástechnikában. Minden helyiértékes számrendszer ugyanúgy működik: minden számjegy pozíciója az alap egymást követő hatványait képviseli, a szám értéke pedig az egyes számjegyek és a hozzájuk tartozó helyiérték szorzatának összege. A számrendszerek közötti átváltás alapvető művelet az alacsony szintű programozásban, a digitális logikai tervezésben, a hálózati mérnöki munkában (MAC- és IPv6-címek), a CSS színkódoknál, a Unix fájljogosultsági maszkoknál és a hibakeresés során végzett memóriacím-vizsgálatnál.
Ismételt osztás: oszd el az N számot az R cél-alappal, jegyezd fel a maradékot, ismételd meg a hányadossal, amíg az el nem éri a 0-t, majd olvasd ki a maradékokat fordított sorrendben. Váltsuk át a 255-ös decimális számot bináris, oktális és hexadecimális rendszerbe. Bináris (R = 2): 255 ÷ 2 = 127 maradék 1, 127 ÷ 2 = 63 M 1, 63 ÷ 2 = 31 M 1, 31 ÷ 2 = 15 M 1, 15 ÷ 2 = 7 M 1, 7 ÷ 2 = 3 M 1, 3 ÷ 2 = 1 M 1, 1 ÷ 2 = 0 M 1. A maradékokat lentről felfelé olvasva: 11111111. Oktális (R = 8): 255 ÷ 8 = 31 M 7, 31 ÷ 8 = 3 M 7, 3 ÷ 8 = 0 M 3 → 377. Hexadecimális (R = 16): 255 ÷ 16 = 15 M 15 (F), 15 ÷ 16 = 0 M 15 (F) → FF.
Decimális 4096 → bináris 1000000000000, oktális 10000, hex 1000. Hasznos a 4 KiB = 4096 bájt megértéséhez.
Decimális 15 → bináris 1111, oktális 17, hex F. Minden hexadecimális számjegy pontosan négy bitnek felel meg; F = 1111.
- ✓ A bemenet nem negatív egész szám (nulla vagy pozitív egész). A törtszámok és negatív számok kiterjesztett algoritmusokat igényelnek (pl. kettes komplemens előjeles bináris számokhoz), amelyek kívül esnek az eszköz hatókörén.
- ✓ A 9 feletti hexadecimális számjegyeket nagybetűkkel (A–F) jelöljük, a legtöbb programozási nyelv, RFC és hardverdokumentáció konvencióit követve.
- ✓ A vezető nullák elmaradnak a kimenetből. Fix szélességű ábrázoláshoz (pl. 8 bites vagy 32 bites bináris), egészítse ki manuálisan az eredményt a kívánt szélességre.
- ✓ A kalkulátor csak nem negatív egész számokat fogad el. A 2^53 − 1 (JavaScript Number.MAX_SAFE_INTEGER) feletti értékeket elutasítja, hogy a megjelenített számjegyek pontosak maradjanak.
- Minden hexadecimális számjegy pontosan négy bináris számjegynek (bitnek), minden oktális számjegy pedig pontosan három bitnek felel meg. Ez az összefüggés gyorssá teszi a fejben történő átváltást a hex, oktális és bináris rendszerek között, amint memorizálja a 16 nibble mintát.
- Gyakori értékek, amelyeket érdemes megjegyezni: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4 294 967 295 (a maximális előjel nélküli 32 bites egész szám).
- Az Unix fájljogosultságok oktális számrendszert használnak: a 755 jelentése rwxr-xr-x (tulajdonos olvasás/írás/futtatás, csoport és mások olvasás/futtatás). Minden oktális számjegy három jogosultsági bitet kódol.
- A CSS hexadecimális színkódok három egymás után fűzött hexadecimális bájtértékből állnak, amelyek a vörös, zöld és kék csatornákat képviselik — pl. a #FF8800 jelentése 255 vörös, 136 zöld, 0 kék.
- Helyiértékes számrendszerek elmélete — Knuth, D. E., The Art of Computer Programming, 2. kötet: Seminumerical Algorithms, 4.1. szakasz
- IEEE 754-2019 — Szabvány a lebegőpontos aritmetikához (egész számok ábrázolásának kontextusa)
- RFC 4291 — IP Version 6 Addressing Architecture (hexadecimális jelölés az IPv6-hoz)
Számrendszerek megértése a számítástechnikában
Minden helyiértékes számrendszer egy alapot (radix) használ, és minden számjegyhez a pozíciója alapján rendel súlyt. A decimális (10-es alapú) rendszerben a jobb szélső számjegy az egyeseké, a következő a tízeseké, majd a százasoké. A bináris (2-es alapú) rendszer csak a 0-t és az 1-et használja, ami közvetlenül megfelel a tranzisztorok be/ki állapotának. Az oktális (8-as alapú) rendszer számjegyenként három bitet, a hexadecimális (16-os alapú) pedig négy bitet csoportosít, az A–F betűket használva a 10–15 közötti értékekhez. A számrendszerek közötti átváltás ismételt osztással történik: ossza el a számot a célalappal, jegyezze fel a maradékot, ismételje meg a hányadossal nulláig, majd olvassa ki a maradékokat fordított sorrendben. Ez az algoritmus áll minden programozási alapváltás mögött.
Gyakorlati fejlesztői felhasználási esetek az alapváltáshoz
A fejlesztők akkor használnak alapváltást, amikor memóriakiíratásokat vizsgálnak, bitenkénti műveleteket hibakeresnek, fájljogosultságokat értelmeznek vagy színkódokkal dolgoznak. A Unix fájljogosultságok (pl. 755) oktálisak: minden számjegy az olvasási/írási/végrehajtási jogot kódolja a tulajdonos, a csoport és mások számára. A CSS hexadecimális színek, mint a #FF8800, három összefűzött hexadecimális bájtból állnak. Az IPv6-címek hexadecimális formátumban íródnak. A bitmaszkokat és jelzőket (flageket) az olvashatóság érdekében gyakran hexadecimális formában adják meg (0xFF egy bájtos maszkhoz, 0xFFFF 16 bithez). Alacsony szintű kódok vagy hálózati protokollok hibakeresésekor a decimális, hexadecimális és bináris közötti váltás gyorsan feltárja a mögöttes bitmintákat.
Számrendszer-átváltó kalkulátor GYIK
Miért használnak bináris, oktális és hexadecimális rendszert a számítástechnikában?
A bináris rendszer közvetlenül a tranzisztorok be/ki állapotának felel meg, így ez a hardver natív nyelve. Az oktális és a hexadecimális a bináris tömörített rövidítése — egy hexadecimális számjegy pontosan négy bitet, egy oktális pedig három bitet képvisel —, így a programozók ezeket használják címek, bitmaszkok és színkódok tömörebb kifejezésére a hosszú bináris sorozatok helyett.
Hogyan válthatok át a másik irányba (pl. hexadecimálisról decimálisra)?
Szorozza meg az egyes számjegyeket az alap helyiérték szerinti hatványával, majd adja össze az eredményeket. Például a hexadecimális 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 decimálisan.
Mi történik a nagyon nagy számokkal?
A kalkulátor csak a JavaScript biztonságos egész számokra vonatkozó korlátjáig fogad el értékeket: 2^53 − 1 (9 007 199 254 740 991). A nagyobb számokat elutasítja, mert a böngészőben elveszíthetik a legkisebb helyiértékű számjegyeiket.
Átválthatok negatív számokat vagy törteket?
Ez az eszköz nem negatív egész számokat kezel. A számítástechnikában a negatív egész számokat általában kettes komplemenssel ábrázolják rögzített bitszélességben, a törtértékek pedig az IEEE 754 lebegőpontos kódolást használják — mindkettő olyan további paramétereket igényel, amelyeket ez a kalkulátor nem gyűjt be.
Miért jelenik meg a 0x előtag a kódban, de az eredményben nem?
A 0x előtag (valamint a 0b a bináris és a 0o az oktális számoknál) egy nyelvspecifikus literál szintaxis, amely jelzi a fordítónak vagy az értelmezőnek, hogy melyik számrendszerre számítson. A kalkulátor a nyers számsort adja vissza előtag nélkül, így bármilyen környezetben felhasználható.