Převody číselných soustav s podporou záporných čísel
Svět počítačů běží na nulách a jedničkách, ale lidé myslí v desítkách. A programátoři? Ti musí rozumět všemu mezi tím. Ať už debugujete nízkoúrovňový kód, nastavujete barvy v CSS, počítáte IP masky nebo řešíte úkoly z informatiky, narážíte na nutnost převádět čísla mezi soustavami.
Běžné kalkulačky ve Windows nebo na mobilu jsou často pomalé a neohrabané. Náš inteligentní převodník číselných soustav byl navržen vývojáři pro vývojáře. Nabízí okamžitou konverzi v reálném čase, podporu pro extrémně velká čísla a jako jeden z mála online nástrojů správně zvládá záporná čísla v binární podobě.
Co tento převodník číselných soustav umí?
Při vývoji tohoto widgetu jsme se zaměřili na řešení nejčastějších bolestí programátorů:
- Reaktivita v reálném čase: Žádné tlačítko “Vypočítat”. Začněte psát do pole HEX a okamžitě vidíte, jak se mění BIN a DEC.
- Podpora záporných čísel (Signed Integers): Většina online převodníků selže, když napíšete
-5. My ne. Díky volbě bitové šířky (8, 16, 32, 64 bitů) simulujeme přesné chování procesoru pomocí tzv. dvojkového doplňku. - Čitelnost binárního kódu: Koukat na
1110101011011110je o oči. Náš nástroj umí výstup automaticky formátovat po 4 bitech (nibbles) na1110 1010 1101 1110, což radikálně snižuje chybovost při opisování. - BigInt podpora: Potřebujete převést 64-bitové číslo nebo hash? Standardní JavaScript končí u čísla $2^{53}$. Náš engine zvládne libovolně dlouhá čísla v režimu “Unsigned”.
Průvodce číselnými soustavami: Kdy kterou použít?
1. Desítková soustava (DEC - Decimal)
- Základ: 10 (číslice 0-9)
- Použití: Běžný život, finance, počítání smyček v kódu.
- Zajímavost: Počítače jí nerozumí, musí si ji převádět na binární.
2. Dvojková soustava (BIN - Binary)
- Základ: 2 (číslice 0, 1)
- Použití: Strojový kód, logické hradla, maskování IP adres.
- Tip: Každá číslice představuje jeden bit. 8 bitů tvoří 1 bajt (Byte).
3. Šestnáctková soustava (HEX - Hexadecimal)
- Základ: 16 (číslice 0-9, písmena A-F)
- Použití: Kompaktní zápis binárního kódu. Jeden znak HEX reprezentuje přesně 4 bity (nibble). Dva znaky (např.
FF) reprezentují celý bajt. - Příklady:
- Barvy na webu:
#FF5733(Red, Green, Blue). - MAC adresy:
00:1A:2B:3C:4D:5E. - Výpisy paměti (Memory dumps).
- Barvy na webu:
4. Osmičková soustava (OCT - Octal)
- Základ: 8 (číslice 0-7)
- Použití: Historicky starší počítače, dnes zejména Linuxová oprávnění (chmod).
- Příklad: Příkaz
chmod 755nastavuje práva rwx-rx-rx (čtení, zápis, spuštění).
Jak správně pracovat se zápornými čísly?
Toto je nejpokročilejší funkce našeho převodníku. V počítačové paměti neexistuje znaménko “mínus”. Aby počítač uložil záporné číslo, používá nejčastěji metodu dvojkového doplňku (Two’s Complement).
Výsledek převodu záporného čísla ale závisí na tom, kolik bitů má proměnná vyhrazeno. Proto v horní liště najdete přepínač Bitová šířka.
Příklad: Jak vypadá číslo -5?
Zkuste si to sami v našem převodníku:
-
Nastavte šířku na 8-bit.
- Zadejte do DEC:
-5. - Výsledek HEX:
FB. - Výsledek BIN:
1111 1011. - Vysvětlení: $256 - 5 = 251$ (což je FB).
- Zadejte do DEC:
-
Nastavte šířku na 16-bit.
- Zadejte do DEC:
-5. - Výsledek HEX:
FFFB. - Vysvětlení: Protože máme více místa, “jedničky” vyplní zbytek prostoru vlevo.
- Zadejte do DEC:
-
Nastavte šířku na Jen kladná (Unsigned).
- Pokud zadáte
-5, pole zčervená. Tento režim nepodporuje záporná čísla, protože by vyžadoval nekonečně mnoho jedniček.
- Pokud zadáte
Profi tip: Pokud pracujete s barvami nebo IP adresami, vždy používejte režim “Jen kladná”. Pokud děláte úkoly do C/C++ nebo assembleru, přepněte na 32-bit nebo 64-bit.
Tabulka rychlých převodů (Cheat Sheet)
Pro rychlou orientaci zde uvádíme základní hodnoty, které by měl každý “ajťák” znát nazpaměť.
| Desítkově (DEC) | Šestnáctkově (HEX) | Dvojkově (BIN) | Poznámka |
|---|---|---|---|
| 0 | 00 | 0000 | Nula |
| 1 | 01 | 0001 | |
| 10 | 0A | 1010 | |
| 15 | 0F | 1111 | Maximální hodnota 4 bitů (Nibble) |
| 16 | 10 | 0001 0000 | |
| 127 | 7F | 0111 1111 | Max hodnota pro signed 8-bit (char) |
| 255 | FF | 1111 1111 | Max hodnota pro unsigned 8-bit (bajt) |
| 65 535 | FFFF | … | Max hodnota pro 16-bit |
Často kladené otázky (FAQ)
Co znamená "Bit Depth" (Bitová šířka)?
Určuje, kolik paměti máme pro číslo vyhrazeno.- 8-bit: Hodnoty 0 až 255 (nebo -128 až 127). Odpovídá typu
charnebobyte. - 16-bit: Hodnoty do 65 535. Odpovídá typu
short. - 32-bit: Standardní
intv moderních jazycích. - 64-bit: Pro velmi velká čísla (
long long,BigInt).
Proč se číslo 255 v HEX zapisuje jako FF?
Šestnáctková soustava má 16 číslic (0-9 a A-F), kde F má hodnotu 15. ČísloFF se vypočítá jako: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Jak převedu HEX barvu na RGB?
Barva na webu, např.#E05412, se skládá ze tří bajtů: Červená (E0), Zelená (54), Modrá (12).
Zadejte do našeho převodníku "E0" do pole HEX -> dostanete 224.
Zadejte "54" -> dostanete 84.
Zadejte "12" -> dostanete 18.
Výsledek je rgb(224, 84, 18).
Co znamená prefix 0x, 0b nebo 0o?
Aby programátoři odlišili soustavy, používají se prefixy:0x= Hexadecimální (např. 0xFF)0b= Binární (např. 0b101)0o= Osmičková (např. 0o755)
Proč mi pole zčervenalo?
To je funkce validace vstupu. Znamená to, že jste zadali znak, který do dané soustavy nepatří. Například:- Písmeno "G" do HEX (povolené je jen A-F).
- Číslici "2" do BIN (povolené je jen 0 a 1).
- Číslici "8" do OCT (povolené je jen 0-7).