Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Konwerter HEX na liczby całkowite

Przelicz liczby szesnastkowe (HEX) na dziesiętne (integer), binarne i ósemkowe. Obsługa liczb całkowitych ze znakiem (signed) i bez znaku (unsigned). Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
13 znaków

Status

Przekonwertowano
OK

błędny HEX lub puste wejście → komunikat pod ustawieniami

Wynik (DEC)

3735928559
OK

liczba dziesiętna — arytmetyka na stringach, bez utraty precyzji

Cyfry HEX

8

po usunięciu 0x, # i separatorów

Długość

32 bit

4 bity na każdą cyfrę HEX

Rozmiar

4 B

sufit z długości w bitach

Tryb

Bez znaku

ze znakiem = uzupełnienie do dwóch

3735928559
Każda cyfra szesnastkowa to 4 bity: wartość HEX to suma cyfr pomnożonych przez kolejne potęgi 16 — dokładnie tak liczy silnik (od lewej: ×16 + cyfra)
HEXDECBityCo przedstawia
0x1 1 4 najmniejsza cyfra niezerowa
0xF 15 4 15 — największa pojedyncza cyfra szesnastkowa
0x10 16 8 16 = 2^4 — jedna cyfra HEX to 4 bity
0xFF 255 8 255 = maksymalny bajt
0x100 256 12 256 = 2^8 — jak jedna cyfra dalej
0xFFFF 65535 16 65535 = maksymalne 16 bitów (2 bajty)
0xDEADBEEF 3735928559 32 klasyk debuggerów, z separatorami 0xDE_AD_BE_EF
0xFFFFFFFFFFFFFFFF 18446744073709551615 64 maksymalne 64 bity (8 bajtów) — precyzja stringów

Rodzina binarna w jednym rzędzie oka: FF16 = 25510 = 111111112, a FFFF16 = 6553510. Te same wartości obliczą sąsiednie narzędzia „HEX na binarne”, „HEX na liczbę dziesiętną” i „HEX na Octal”.

W trybie ze znakiem najstarszy bit decyduje o znaku: gdy jest ustawiony, silnik odejmuje wartość od 2^n — stąd 0xFF na 8 bitach to −1, a 0x80 to −128
HEXSzerokośćBez znakuZe znakiem (two’s complement)
0xFF 8 bit 255 -1
0x7F 8 bit 127 127
0x80 8 bit 128 -128
0xFFFF 16 bit 65535 -1
0x8000 16 bit 32768 -32768

Zwróć uwagę na 0x7F i 0x80 — sąsiadujące wartości bez znaku (127, 128) to skrajnie różne liczby ze znakiem (127, −128). Przy „Auto” silnik dobiera szerokość do długości wejścia (minimum 8 bitów, całe bajty).

Warto wiedzieć — HEX w programowaniu

Gdzie spotkasz HEX

Kolory w CSS (#FF8800), adresy pamięci i offsety w debuggerach, bajty plików w hex edytorze, skróty SHA-256, identyfikatory w API i Rejestrze Windows. Jedna cyfra HEX = 4 bity, więc bajt zawsze zapiszesz dokładnie dwiema cyframi.

Dlaczego wynik to tekst

Liczby powyżej 2^53 (16^13) nie mieszczą się w precyzji liczb zmiennoprzecinkowych, a int w PHP ma 64 bity. Silnik liczy więc „na stringach” (×16 + cyfra cyfra po cyfrze) — konwersja jest dokładna także dla 256-bitowych wartości, bez notacji naukowej.

Prefiksy i separatory

Narzędzie rozumie popularne zapisy: 0xFF (C, Python, JS), #FF (kolory), wielkie i małe litery, a przy włączonej opcji separatorów także DE_AD_BE_EF lub DE AD BE EF — separatory grupują bajty tak, jak robią to numery kart czy UUID.

Ze znakiem czy bez

W sprzęcie i protokołach bajt może być „niepodpisany” (0–255) albo „podpisany” uzupełnieniem do dwóch (−128..127). Zły wybór daje wynik przesunięty o 256, 65536 itd. — wtedy przełącz checkbox „Signed” i porównaj z drugą tabelą ściągi.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Konwerter HEX ↔ integer – signed, unsigned, little i big endian

Programiści regularnie konwertują między hex a integer: debugowanie rejestrów CPU, analiza plików binarnych, kolory CSS, adresy pamięci. Narzędzie przelicza w obie strony z obsługą różnych rozmiarów (8, 16, 32, 64 bit) i kolejności bajtów.

konwerter hex integer HEX na liczbę szesnastkowy na dziesiętny hex decimal converter

Konwersja HEX → integer

Hex digit → 4 bity. Dwie cyfry hex = 1 bajt. Przykłady: 0xFF = 255 (8-bit unsigned). 0xFFFF = 65535 (16-bit unsigned). 0xDEADBEEF = 3735928559 (32-bit unsigned). Metoda: suma cyfr × 16^pozycja. D(13)×16³ + E(14)×16² + A(10)×16¹ + D(13)×16⁰.

Signed vs unsigned integers

Unsigned (bez znaku): 0 do 2^n-1. Np. uint8: 0-255. Signed (ze znakiem, two's complement): -(2^(n-1)) do 2^(n-1)-1. int8: -128 do 127. Najwyższy bit = bit znaku. 0xFF jako uint8 = 255. 0xFF jako int8 = -1. 0x80 jako uint8 = 128. 0x80 jako int8 = -128.

Endianness – kolejność bajtów

Little-endian (x86/ARM): najmniej znaczący bajt pierwszy. Liczba 0x12345678 w pamięci: 78 56 34 12. Big-endian (sieć, Java): najbardziej znaczący bajt pierwszy: 12 34 56 78. Sieciowy standard (network byte order): big-endian. ntohl() i htonl() konwertują między nimi w C.

Zastosowania w programowaniu

Debugowanie: rejestr RAX = 0x000000000000007B → wartość 123. Kolory: #FF5733 = (255, 87, 51) w RGB. Adresy pamięci: 0x7FFF5FBFF808. Protokoły: parsowanie nagłówka TCP (source port = 2 bajty big-endian). Flagi bitowe: 0x0F = bity 0-3 ustawione. Kody błędów: HRESULT 0x80004005 (COM error).

Jak działa konwersja w obie strony

Narzędzie sprowadza oba kierunki do jednego mechanizmu: cyfra szesnastkowa odpowiada dokładnie 4 bitom, a więc cała konwersja polega na składaniu półbajtów w jedną liczbę. Na wejściu ciąg jest normalizowany — usuwane są spacje, podkreślenia, myślniki oraz prefiks 0x, a wielkość liter nie ma znaczenia, bo A i a oznaczają tę samą cyfrę. Każdy znak zamieniany jest na wartość od 0 do 15. Wynik budowany jest metodą Hornera: zaczynamy od zera i dla każdej kolejnej cyfry liczymy wynik = wynik × 16 + wartość cyfry. Nie trzeba więc liczyć potęg — wystarczy jedno mnożenie i jedno dodanie na cyfrę, a wynik pozostaje dokładny niezależnie od długości wejścia.

Kierunek odwrotny, czyli liczba całkowita na hex, opiera się na dzieleniu z resztą. Dzielimy wartość przez 16, resztę z zakresu 0-15 zapisujemy jako jedną cyfrę hex, a otrzymany iloraz dzielimy dalej, aż osiągnie zero. Reszty czytane od ostatniej do pierwszej tworzą zapis szesnastkowy, a wartości 10-15 oznaczamy literami A, B, C, D, E, F. Ten sam algorytm stosuje się do liczb ujemnych — najpierw trzeba tylko wyznaczyć ich postać w uzupełnieniu do dwóch w wybranej szerokości.

Trzeci etap to nałożenie szerokości i interpretacji. Wartość jest ograniczana do 8, 16, 32 albo 64 bitów, a w trybie signed najstarszy bit w tej szerokości pełni rolę bitu znaku, co odpowiada zapisowi w uzupełnieniu do dwóch. Zamiana kolejności bajtów jest operacją niezależną: przestawia bajty w zapisie, ale nie zmienia samej wartości liczbowej. Ten sam ciąg cyfr może więc dać kilka różnych wyników i nie jest to błąd — szerokość, tryb znaku i kolejność bajtów to trzy osobne ustawienia, które trzeba dopasować do źródła danych.

Przykład krok po kroku: liczba 4660 na zapis hex

  1. Przeliczamy liczbę dziesiętną 4660 na zapis szesnastkowy, przy szerokości 16 bitów i kolejności big-endian.
  2. Dzielimy 4660 przez 16: 4660 / 16 = 291, reszta 4. Reszta 4 jest najmłodszą cyfrą hex.
  3. Dzielimy iloraz 291 przez 16: 291 / 16 = 18, reszta 3.
  4. Dzielimy 18 przez 16: 18 / 16 = 1, reszta 2.
  5. Dzielimy 1 przez 16: 1 / 16 = 0, reszta 1. Iloraz wynosi zero, więc kończymy.
  6. Reszty czytane od końca dają 0x1234. Sprawdzenie: 1 × 4096 + 2 × 256 + 3 × 16 + 4 = 4096 + 512 + 48 + 4 = 4660. W 16 bitach zapis big-endian to 12 34, a little-endian 34 12.

Potęgi 16 przydatne przy ręcznym liczeniu

Pozycja cyfry od prawejPotęgaWartość dziesiętna
016^01
116^116
216^2256
316^34096
416^465536
516^51048576
616^616777216
716^7268435456

Praktyczne wskazówki przy konwersji

  • Ujednolić zapis wejściowy — usuń spacje, podkreślenia i przecinki grupujące, zanim wkleisz ciąg; prefiks 0x możesz zostawić albo pominąć, ale trzymaj jeden styl w całym pliku.
  • Ustaw szerokość przed interpretacją — 8, 16, 32 lub 64 bity decydują o tym, gdzie kończy się liczba i który bit jest najstarszy, więc wynik bez tej decyzji nie ma jednoznacznej wartości.
  • Dopełniaj zera do pełnych bajtów — zapis 0x7B przy 32 bitach czytelniej przedstawić jako 0x0000007B, zwłaszcza gdy porównujesz go z danymi z rejestru lub pliku binarnego.
  • Kontroluj długość ciągu — 2 cyfry to 1 bajt, 4 cyfry to 2 bajty, 8 cyfr to 4 bajty, a 16 cyfr to 8 bajtów; nietypowa liczba cyfr prawie zawsze oznacza brakującą lub nadmiarową pozycję.
  • Przełącz tryb znaku, zamiast szukać błędu — gdy wynik wygląda nieintuicyjnie, porównaj wersję signed i unsigned, a dopiero potem sprawdzaj dane wejściowe.

Czego narzędzie nie uwzględnia

  • Nie zna typu źródłowego — z samego ciągu hex nie wynika, czy pochodzi on z rejestru, pliku binarnego czy pola protokołu, więc szerokość i kolejność bajtów musisz wskazać ręcznie.
  • Tylko uzupełnienie do dwóch — narzędzie interpretuje liczby ze znakiem w reprezentacji two's complement; historyczne zapisy, takie jak moduł ze znakiem czy uzupełnienie do jedynki, dadzą inny wynik.
  • Brak autodetekcji kolejności bajtów — konwerter nie rozpozna, jak bajty leżą w pliku; przy złym ustawieniu wynik będzie poprawny matematycznie, ale nieodpowiadający danym.
  • Granica precyzji przy 64 bitach — zakres 64-bitowy wykracza poza bezpieczny zakres liczb całkowitych w JavaScript (2^53), więc najstarsze cyfry mogą zostać zaokrąglone.

Najczęstsze pytania

Jak szybko przeliczać HEX na decimal w głowie?

Tabela cyfr hex: A=10, B=11, C=12, D=13, E=14, F=15. Dla 2-cyfrowego hex: WYŻSZY×16 + NIŻSZY. Przykład: 0xAB = 10×16+11 = 171. 0xFF = 15×16+15 = 255. Dla 4-cyfrowego: WYŻSZY×256 + NIŻSZY (jak 2-cyfrowy hex).

Co znaczy 0x w hexadecymalnym?

Prefiks 0x: konwencja C (K&R C, 1972) oznaczająca liczbę szesnastkową. 0xFF = hex FF = decimal 255. Inne formaty: &FF (Pascal), FFh (assembler), #FF (CSS). Python: 0xFF lub hex(255) = "0xff". JavaScript: parseInt("FF",16) lub 0xFF. Prefix 0b = binarne (0b11111111 = 0xFF = 255).

Jak hex reprezentuje kolory RGB?

#RRGGBB: każda para = 1 składowa (0-255). #FF0000 = rgb(255,0,0) = czerwony. #00FF00 = zielony. #0000FF = niebieski. #FFFFFF = biały (255,255,255). #000000 = czarny. Alpha: #RRGGBBAA – #FF000080 = czerwony 50% opacity. JavaScript: "#FF5733" → R=parseInt("FF",16)=255.

Co to są flagi bitowe (bit flags) i jak je czytać?

Flagi bitowe: każdy bit = osobna flaga bool. 0x05 = 0b00000101 → bity 0 i 2 ustawione. Sprawdzenie bitu n: (value >> n) & 1. Ustawienie bitu: value |= (1 << n). Czyszczenie bitu: value &= ~(1 << n). Przykład Linux file permissions: 755 (octal) = rwxr-xr-x.

Jakie są typowe wartości hex w systemach?

0x00 = null/zero. 0xFF = max 8-bit (255). 0xDEADBEEF = debug/uninitialized memory marker (VC++). 0xCAFEBABE = Java class file magic. 0x7F800000 = IEEE 754 +infinity. 0x80000000 = min signed 32-bit (-2147483648). 0xFFFFFFFF = max unsigned 32-bit = -1 signed.

Jak zamienić liczbę dziesiętną na szesnastkową bez kalkulatora?

Dziel liczbę przez 16 i zapisuj reszty, dopóki iloraz nie spadnie do zera. Reszty czytane od końca dają zapis hex. Dla 4660 kolejne reszty to 4, 3, 2, 1, czyli wynik 0x1234.

Ile cyfr hex potrzebuję na liczbę 64-bitową?

Dokładnie 16 cyfr, bo każda cyfra to 4 bity, a 16 × 4 = 64. Dla porównania 32 bity zajmują 8 cyfr, a 16 bitów 4 cyfry.

Czy można wpisać hex bez prefiksu 0x?

Tak, prefiks jest tylko konwencją zapisu w kodzie i nie zmienia wartości. Narzędzie przyjmuje ciąg z prefiksem lub bez, ważna jest natomiast długość ciągu, bo ona podpowiada szerokość.

Jak zapisać liczbę ujemną w hex?

W trybie signed liczba ujemna jest zapisywana w uzupełnieniu do dwóch w wybranej szerokości. Przykładowo -2 w 16 bitach to 0xFFFE, ponieważ 65536 - 2 = 65534.

Dlaczego przy 64 bitach wynik bywa niedokładny?

Zakres 64 bitów przekracza bezpieczny zakres liczb całkowitych w JavaScript, który kończy się na 2^53. Najstarsze cyfry mogą wtedy zostać zaokrąglone, dlatego wartości graniczne warto potwierdzić w środowisku docelowym.

Powiązane narzędzia: konwerter Base2-Base36, konwerter HEX na tekst i kalkulator operacji bitowych.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!