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ů:

  1. 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.
  2. 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.
  3. Čitelnost binárního kódu: Koukat na 1110101011011110 je o oči. Náš nástroj umí výstup automaticky formátovat po 4 bitech (nibbles) na 1110 1010 1101 1110, což radikálně snižuje chybovost při opisování.
  4. 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).

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 755 nastavuje 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:

  1. 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).
  2. 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.
  3. 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.

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
0000000Nula
1010001
100A1010
150F1111Maximální hodnota 4 bitů (Nibble)
16100001 0000
1277F0111 1111Max hodnota pro signed 8-bit (char)
255FF1111 1111Max hodnota pro unsigned 8-bit (bajt)
65 535FFFFMax 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 char nebo byte.
  • 16-bit: Hodnoty do 65 535. Odpovídá typu short.
  • 32-bit: Standardní int v 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. Číslo FF 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)
Náš převodník tato značení pozná, ale není nutné je psát.
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).
Opravte překlep a výpočet bude pokračovat.