Számrendszer-átalakító negatív számok támogatásával
A számítógépek világa nullákon és egyeseken fut, de az emberek tízes számrendszerben gondolkodnak. A programozók pedig? Nekik mindent meg kell érteniük e kettő között. Akár alacsony szintű kódot hibakeres, színeket állít be CSS-ben, IP-maszkokat számol, vagy informatikai feladatokat old meg, szembesül a számok közötti átváltás szükségességével.
A Windowsban vagy mobiltelefonon lévő hagyományos számológépek gyakran lassúak és nehézkesek. A mi intelligens számrendszer-átalakítónkat fejlesztők tervezték fejlesztőknek. Azonnali, valós idejű konverziót, extrém nagy számok támogatását kínálja, és az egyik kevés online eszköz, amely helyesen kezeli a negatív számokat bináris formában.
Mit tud ez a számrendszer-átalakító?
Ennek a widgetnek a fejlesztése során a programozók leggyakoribb problémáinak megoldására összpontosítottunk:
- Valós idejű reakcióképesség: Nincs “Számítás” gomb. Kezdjen el írni a HEX mezőbe, és azonnal látja, hogyan változik a BIN és a DEC.
- Negatív számok támogatása (előjeles egész számok): A legtöbb online konverter elakad, ha beírja a
-5-öt. Mi nem. A bitmélység (8, 16, 32, 64 bit) kiválasztásával szimuláljuk a processzor pontos viselkedését az úgynevezett kettes komplemens segítségével. - Bináris kód olvashatósága: A
1110101011011110nézése fárasztó. Eszközünk automatikusan formázza a kimenetet 4 bitenként (nibble)1110 1010 1101 1110formátumra, ami radikálisan csökkenti a másolás során előforduló hibákat. - BigInt támogatás: 64 bites számot vagy hash-t kell átalakítania? A szabványos JavaScript a $2^{53}$ számnál áll meg. Motorunk tetszőlegesen hosszú számokat képes kezelni “előjel nélküli” módban.
Útmutató a számrendszerekhez: Mikor melyiket használjuk?
1. Tízes számrendszer (DEC - Decimal)
- Alap: 10 (számjegyek 0-9)
- Használat: Hétköznapi élet, pénzügyek, ciklusok számolása kódban.
- Érdekesség: A számítógépek nem értik, binárisra kell átalakítaniuk.
2. Kettes számrendszer (BIN - Binary)
- Alap: 2 (számjegyek 0, 1)
- Használat: Gépi kód, logikai kapuk, IP-cím maszkolása.
- Tipp: Minden számjegy egy bitet reprezentál. 8 bit alkot 1 bájtot (Byte).
3. Tizenhatos számrendszer (HEX - Hexadecimal)
- Alap: 16 (számjegyek 0-9, betűk A-F)
- Használat: Bináris kód kompakt írása. Egy HEX karakter pontosan 4 bitet (nibble) reprezentál. Két karakter (pl.
FF) egy teljes bájtot reprezentál. - Példák:
- Színek a weben:
#FF5733(Piros, Zöld, Kék). - MAC-címek:
00:1A:2B:3C:4D:5E. - Memória dumpok.
- Színek a weben:
4. Nyolcas számrendszer (OCT - Octal)
- Alap: 8 (számjegyek 0-7)
- Használat: Történelmileg régebbi számítógépek, ma főleg Linux jogosultságok (chmod).
- Példa: A
chmod 755parancs az rwx-rx-rx (olvasás, írás, futtatás) jogosultságokat állítja be.
Hogyan kezeljük helyesen a negatív számokat?
Ez a konverterünk legfejlettebb funkciója. A számítógép memóriájában nem létezik “mínusz” előjel. Ahhoz, hogy a számítógép negatív számot tároljon, leggyakrabban a kettes komplemens (Two’s Complement) módszert használja.
A negatív szám átalakításának eredménye azonban attól függ, hogy a változó hány bitet foglal el. Ezért a felső sávban található a Bitmélység kapcsoló.
Példa: Hogyan néz ki a -5 szám?
Próbálja ki maga a konverterünkben:
-
Állítsa a szélességet 8-bitre.
- Adja meg DEC-ben:
-5. - HEX eredmény:
FB. - BIN eredmény:
1111 1011. - Magyarázat: $256 - 5 = 251$ (ami FB).
- Adja meg DEC-ben:
-
Állítsa a szélességet 16-bitre.
- Adja meg DEC-ben:
-5. - HEX eredmény:
FFFB. - Magyarázat: Mivel több helyünk van, az “egyesek” kitöltik a bal oldali maradék teret.
- Adja meg DEC-ben:
-
Állítsa a szélességet Csak pozitív (Unsigned) értékre.
- Ha beírja a
-5-öt, a mező pirosra vált. Ez a mód nem támogatja a negatív számokat, mert végtelen sok egyesre lenne szükség.
- Ha beírja a
Profi tipp: Ha színekkel vagy IP-címekkel dolgozik, mindig használja a “Csak pozitív” módot. Ha C/C++ vagy assembly feladatokat végez, váltson 32-bitesre vagy 64-bitesre.
Gyors átváltási táblázat (Cheat Sheet)
A gyors tájékozódás érdekében itt felsoroljuk az alapvető értékeket, amelyeket minden “informatikusnak” fejből kellene tudnia.
| Decimális (DEC) | Hexadecimális (HEX) | Bináris (BIN) | Megjegyzés |
|---|---|---|---|
| 0 | 00 | 0000 | Nulla |
| 1 | 01 | 0001 | |
| 10 | 0A | 1010 | |
| 15 | 0F | 1111 | 4 bit (nibble) maximális értéke |
| 16 | 10 | 0001 0000 | |
| 127 | 7F | 0111 1111 | Max érték előjeles 8-bithez (char) |
| 255 | FF | 1111 1111 | Max érték előjel nélküli 8-bithez (bájt) |
| 65 535 | FFFF | … | Max érték 16-bithez |
Gyakran Ismételt Kérdések (GYIK)
Mit jelent a "Bit Depth" (Bitmélység)?
Meghatározza, mennyi memória van fenntartva egy számnak.- 8-bit: Értékek 0-tól 255-ig (vagy -128-tól 127-ig). Megfelel a
charvagybytetípusnak. - 16-bit: Értékek 65 535-ig. Megfelel a
shorttípusnak. - 32-bit: Szabványos
inta modern nyelvekben. - 64-bit: Nagyon nagy számokhoz (
long long,BigInt).
Miért írják a 255-ös számot HEX-ben FF-ként?
A hexadecimális számrendszer 16 számjegyet (0-9 és A-F) tartalmaz, ahol az F értéke 15. AzFF számítása a következő: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Hogyan alakítok át HEX színt RGB-re?
A webes szín, pl.#E05412, három bájtól áll: Piros (E0), Zöld (54), Kék (12).
Adja meg a konverterünkbe az "E0"-t a HEX mezőbe -> 224-et kap.
Adja meg az "54"-et -> 84-et kap.
Adja meg a "12"-t -> 18-at kap.
Az eredmény rgb(224, 84, 18).
Mit jelent a 0x, 0b vagy 0o prefix?
A programozók a számrendszerek megkülönböztetésére prefixeket használnak:0x= Hexadecimális (pl. 0xFF)0b= Bináris (pl. 0b101)0o= Oktális (pl. 0o755)
Miért vált pirosra a mező?
Ez egy bemeneti validációs funkció. Azt jelenti, hogy olyan karaktert adott meg, amely nem tartozik az adott számrendszerhez. Például:- "G" betű HEX-be (csak A-F engedélyezett).
- "2" számjegy BIN-be (csak 0 és 1 engedélyezett).
- "8" számjegy OCT-be (csak 0-7 engedélyezett).