Převodník číselných soustav: teď s bitovou kalkulačkou, bitmask helperem a dvojkovým doplňkem

Stručně: Online převodník hexdecbin.chiptron.cz převádí mezi decimální, binární, hexadecimální soustavou a ASCII/Unicode znakem. Nově umí i signed/unsigned interpretaci (dvojkový doplněk), bitovou kalkulačku (AND, OR, XOR, NOT, posuny), bitmask helper s generováním C/Arduino kódu a prefix notaci pro C, Python a assembler. Funguje zdarma, bez instalace, pro šířky 8 až 64 bitů.

Když bastlíte kolem ESP32 nebo Arduina, dřív nebo později narazíte na to samé: máte hodnotu v hexu, datasheet ji uvádí decimálně a vy potřebujete vědět, který bit vlastně nastavujete. Otevřete kalkulačku ve Windows, přepnete do programátorského režimu, a stejně vám chybí ASCII a pořádný přehled o tom, co se děje s jednotlivými bity.

Tak jsem si postavil vlastní převodník. A za poslední dobu z něj vyrostl pořádný nástroj.

Najdete ho na hexdecbin.chiptron.cz — zdarma, bez instalace, bez reklam.

Jak to začalo

Původní verze byla jednoduchá. Čtyři pole — decimální, binární, hexadecimální a ASCII znak. Napíšete číslo do jednoho, ostatní se přepočítají. Podbarvení každé čtveřice bitů v binárce a každého druhého znaku v hexu, ať se v dlouhých číslech vyznáte.

Fungovalo to, ale bylo to málo. Chyběla podpora znaménkových čísel, neuměl to bitové operace a na mobilu se to celé rozsypalo (klasická chyba ve viewport meta tagu, kterou má půlka internetu).

Tak jsem se do toho pustil pořádně.

Co je nového

Signed / unsigned a dvojkový doplněk

Tohle je věc, která embedded lidi pravidelně mate. Bajt 0xFF je 255, nebo −1? Záleží, jestli ho čtete jako uint8_t nebo int8_t.

Převodník teď má přepínač Unsigned / Signed. V signed režimu vám u každé hodnoty ukáže zápornou interpretaci ve dvojkovém doplňku a zvýrazní MSB jako znaménkový bit. Zadáte 255 v 8 bitech → uvidíte −1. Zadáte −128 → uvidíte bitový vzor 10000000. Bit pattern zůstává stejný, mění se jen interpretace.

Volitelná šířka 8, 16, 32 a 64 bitů samozřejmostí.

Bitová kalkulačka

AND, OR, XOR, NOT a bitové posuny SHL/SHR. Operandy zadáte v jakémkoliv formátu — 255, 0xFF i binárně 11111111.

Výpočet je naskládaný pod sebou jako písemné počítání, takže bity operandu A, operandu B a výsledku jsou vizuálně zarovnané. Žádné luštění, co s čím počítáte.

Drobnost, která ale hodně pomáhá: formát výsledku se řídí operandem A. Když zadáte A jako hex, výsledek bude hex. Když binárně, dostanete binárku. Pod výsledkem máte vždy i ostatní soustavy a tlačítko, kterým hodnotu pošlete rovnou do hlavního převodníku.

Bitmask helper

Tohle je můj oblíbenec. Klikáním nastavíte jednotlivé bity v mřížce a nástroj vygeneruje masku v DEC, HEX i BIN — a hlavně hotový C/Arduino kód:

uint8_t mask = 0x81;  // (1 << 0) | (1 << 7)

// Nastavit bity:   reg |=  mask;
// Vymazat bity:    reg &= ~mask;
// Přepnout bity:   reg ^=  mask;
// Test bitů:       if (reg & mask) { ... }

Zkopírujete a vložíte do kódu. Konec ručního počítání masek na papíře. Stejně pro Python.

Prefix notace a C typy

Vedle hlavního převodníku se živě ukazuje, jak danou hodnotu zapsat v různých jazycích — 0xFF a 0b11111111 pro C/Arduino, 0o377 pro Python, assemblerové $FF a %11111111. Vše na jeden klik do schránky.

A pod tím barevné odznáčky C typů, do kterých se hodnota vejde. Zadáte 255 a hned vidíte, že se vejde do uint8_t, ale ne do int8_t (ten končí na 127). Malá věc, ale ušetří vám překvapení při přetečení.

Jak to využijete v praxi

Pár situací, kde to denně používám:

  • Čtení registrů z datasheetu. Datasheet píše hodnotu hex, vy chcete vědět, které bity to zapne. Hodíte to do bitmask helperu a je jasno.
  • Ladění sériové komunikace. Z monitoru vám leze 0x0D 0x0A a potřebujete vědět, že je to CR a LF. ASCII pole to ukáže okamžitě.
  • Práce s GPIO maskami. Nastavujete víc pinů najednou přes registr? Naklikáte bity, zkopírujete C kód.
  • Znaménková aritmetika. Senzor vrací −40 jako bajt a vy nevíte, jaký to je bit pattern. Signed režim vám to přeloží.
  • Rychlé bitové operace bez otevírání Pythonu nebo kalkulačky — maska, posun, XOR kontrolního součtu.

Pár vychytávek

Nástroj umí tmavý režim (a pamatuje si vaši volbu), respektuje nastavení systému a celé to konečně funguje i na mobilu.

Výsledek jde sdílet odkazem — kliknete na „Sdílet výsledek“ a dostanete URL s předvyplněnou hodnotou. Hodí se, když řešíte něco s kolegou přes chat.

A je tam i tabulka příkladů — kliknete na řádek a hodnota se načte do převodníku. Dobré pro rychlou orientaci nebo když si chcete jen vyzkoušet, co to umí.

Závěrem

Z původního čtyřpolíčkového převodníku se stal nástroj, který mi pokrývá většinu toho, co u bastlení kolem mikrokontrolérů potřebuju. Nemusím přepínat mezi pěti taby a kalkulačkou — všechno je na jedné stránce.

Je to zdarma a bude to tak i zůstávat. Pokud vám něco chybí nebo narazíte na chybu, dejte vědět — nástroj žije a poroste dál.

Vyzkoušejte: hexdecbin.chiptron.cz

Ptáte se

Jak převést hexadecimální číslo na decimální nebo binární?

Zadejte hodnotu do pole Hexadecimální (např. FF) a převodník okamžitě zobrazí odpovídající decimální (255), binární (11111111) i ASCII hodnotu. Převod funguje obousměrně — můžete začít v kterémkoliv poli.

Co je dvojkový doplněk a jak zobrazím záporná čísla?

Dvojkový doplněk je způsob reprezentace záporných čísel v binární soustavě. Přepněte přepínač na Signed a převodník zobrazí zápornou interpretaci hodnoty. Například 8bitová hodnota 255 (0xFF) odpovídá signed hodnotě −1 a 128 odpovídá −128.

K čemu slouží bitmask helper a generování C kódu?

Bitmask helper umožní klikáním nastavit jednotlivé bity a vygeneruje masku v DEC, HEX i BIN spolu s hotovým C/Arduino kódem pro nastavení (reg |= mask), vymazání (reg &= ~mask), přepnutí (reg ^= mask) a test bitů v registru. Kód stačí zkopírovat do projektu.

Jaké bitové operace kalkulačka podporuje?

Bitová kalkulačka umí AND, OR, XOR, NOT a bitové posuny doleva (SHL) i doprava (SHR) pro šířky 8, 16, 32 a 64 bitů. Operandy lze zadat decimálně, hexadecimálně (0xFF) i binárně. Formát výsledku se řídí formátem operandu A.

Funguje převodník na mobilu a má tmavý režim?

Ano. Převodník je plně responzivní a funguje na telefonu i tabletu. Má tmavý režim, který si pamatuje vaši volbu a respektuje nastavení systému. Výsledek lze též sdílet odkazem s předvyplněnou hodnotou.
Sdílejte článek:
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku

Související články

Dělají Vám problémy bitové operace (OR, AND, XOR, bitový komplement) a nevíte jaký výsledek z toho vyjde? Pak si přečtěte následující článek, který snad objasní vaše tápání + přidá několik vzorových příkladů.

V supermarketech jsou už Vánoce v plném proudu, je tedy nejvyšší čas sepsat článek plný tipů, co by si kutil/ka, bastlíř/ka a 3D tiskař/ka mohli přát pod vánoční stromeček. Sepsal jsem zajímavé nářadí a věci, které se jim mohou hodit.…

Další příklad kódu ve VHDL pro FGPA.

Dostali jsme unikátní šanci vidět Protonové centrum Praha – PTC v době odstávky. Díky tomu jsme se mohli podívat doslova do vnitřností samotného cyklotronu a ozařovací místnosti i tam, co je pod ní. Děkujeme za možnost se do PTC podívat.

Pokud programujete mikrokontroléry od firmy STM (STM32F4, STM32F0, STM32L1) pomocí Standard Pheripheral Library, tak se vám možná nelíbí velikost výsledného kódu.

Článek mi zaslal Richard Štefún, za zaslání článku mu tímto děkuji.

Trendy