Konwerter Systemów Liczbowych (BIN/HEX/DEC/OCT) z Ujemnymi
Świat komputerów działa na zerach i jedynkach, ale ludzie myślą w dziesiątkach. A programiści? Oni muszą rozumieć wszystko pomiędzy. Niezależnie od tego, czy debugujesz kod niskopoziomowy, ustawiasz kolory w CSS, obliczasz maski IP czy rozwiązujesz zadania z informatyki, napotykasz na konieczność konwertowania liczb między systemami.
Zwykłe kalkulatory w systemie Windows lub na telefonie są często wolne i nieporęczne. Nasz inteligentny konwerter systemów liczbowych został zaprojektowany przez deweloperów dla deweloperów. Oferuje natychmiastową konwersję w czasie rzeczywistym, obsługę ekstremalnie dużych liczb i jako jedno z niewielu narzędzi online poprawnie obsługuje liczby ujemne w postaci binarnej.
Co potrafi ten konwerter systemów liczbowych?
Podczas tworzenia tego widgetu skupiliśmy się na rozwiązaniu najczęstszych problemów programistów:
- Reaktywność w czasie rzeczywistym: Brak przycisku “Oblicz”. Zacznij pisać w polu HEX, a natychmiast zobaczysz, jak zmieniają się BIN i DEC.
- Obsługa liczb ujemnych (Signed Integers): Większość konwerterów online zawodzi, gdy wpiszesz
-5. My nie. Dzięki wyborowi głębokości bitowej (8, 16, 32, 64 bity) symulujemy dokładne zachowanie procesora za pomocą tzw. uzupełnienia dwójkowego. - Czytelność kodu binarnego: Patrzenie na
1110101011011110jest męczące dla oczu. Nasze narzędzie potrafi automatycznie formatować wynik co 4 bity (nibble) na1110 1010 1101 1110, co radykalnie zmniejsza błędy podczas przepisywania. - Obsługa BigInt: Potrzebujesz skonwertować liczbę 64-bitową lub hash? Standardowy JavaScript kończy się na liczbie $2^{53}$. Nasz silnik obsługuje dowolnie długie liczby w trybie “Tylko dodatnie”.
Przewodnik po systemach liczbowych: Kiedy którego używać?
1. System dziesiętny (DEC - Decimal)
- Podstawa: 10 (cyfry 0-9)
- Zastosowanie: Życie codzienne, finanse, liczenie pętli w kodzie.
- Ciekawostka: Komputery go nie rozumieją, muszą konwertować go na binarny.
2. System dwójkowy (BIN - Binary)
- Podstawa: 2 (cyfry 0, 1)
- Zastosowanie: Kod maszynowy, bramki logiczne, maskowanie adresów IP.
- Wskazówka: Każda cyfra reprezentuje jeden bit. 8 bitów tworzy 1 bajt (Byte).
3. System szesnastkowy (HEX - Hexadecimal)
- Podstawa: 16 (cyfry 0-9, litery A-F)
- Zastosowanie: Kompaktny zapis kodu binarnego. Jeden znak HEX reprezentuje dokładnie 4 bity (nibble). Dwa znaki (np.
FF) reprezentują cały bajt. - Przykłady:
- Kolory w sieci:
#FF5733(Red, Green, Blue). - Adresy MAC:
00:1A:2B:3C:4D:5E. - Zrzuty pamięci (Memory dumps).
- Kolory w sieci:
4. System ósemkowy (OCT - Octal)
- Podstawa: 8 (cyfry 0-7)
- Zastosowanie: Historycznie starsze komputery, dziś zwłaszcza uprawnienia Linuxowe (chmod).
- Przykład: Polecenie
chmod 755ustawia uprawnienia rwx-rx-rx (odczyt, zapis, wykonanie).
Jak prawidłowo pracować z liczbami ujemnymi?
To jest najbardziej zaawansowana funkcja naszego konwertera. W pamięci komputera nie istnieje znak “minus”. Aby komputer mógł zapisać liczbę ujemną, najczęściej używa metody uzupełnienia dwójkowego (Two’s Complement).
Jednak wynik konwersji liczby ujemnej zależy od tego, ile bitów ma zmienna. Dlatego w górnym pasku znajdziesz przełącznik Głębokość bitowa.
Przykład: Jak wygląda liczba -5?
Spróbuj sam w naszym konwerterze:
-
Ustaw szerokość na 8-bit.
- Wpisz w DEC:
-5. - Wynik HEX:
FB. - Wynik BIN:
1111 1011. - Wyjaśnienie: $256 - 5 = 251$ (co daje FB).
- Wpisz w DEC:
-
Ustaw szerokość na 16-bit.
- Wpisz w DEC:
-5. - Wynik HEX:
FFFB. - Wyjaśnienie: Ponieważ mamy więcej miejsca, “jedynki” wypełnią resztę przestrzeni po lewej stronie.
- Wpisz w DEC:
-
Ustaw szerokość na Tylko dodatnie (Unsigned).
- Jeśli wpiszesz
-5, pole zaświeci się na czerwono. Ten tryb nie obsługuje liczb ujemnych, ponieważ wymagałby nieskończenie wielu jedynek.
- Jeśli wpiszesz
Profesjonalna wskazówka: Jeśli pracujesz z kolorami lub adresami IP, zawsze używaj trybu “Tylko dodatnie”. Jeśli wykonujesz zadania z C/C++ lub asemblera, przełącz na 32-bit lub 64-bit.
Tabela szybkich konwersji (ściągawka)
Dla szybkiej orientacji przedstawiamy tutaj podstawowe wartości, które każdy “spec od IT” powinien znać na pamięć.
| Dziesiętnie (DEC) | Szesnastkowo (HEX) | Dwójkowo (BIN) | Uwaga |
|---|---|---|---|
| 0 | 00 | 0000 | Zero |
| 1 | 01 | 0001 | |
| 10 | 0A | 1010 | |
| 15 | 0F | 1111 | Maksymalna wartość dla 4 bitów (Nibble) |
| 16 | 10 | 0001 0000 | |
| 127 | 7F | 0111 1111 | Maksymalna wartość dla signed 8-bit (char) |
| 255 | FF | 1111 1111 | Maksymalna wartość dla unsigned 8-bit (bajt) |
| 65 535 | FFFF | … | Maksymalna wartość dla 16-bitów |
Często zadawane pytania (FAQ)
Co oznacza "Głębokość bitowa" (Bit Depth)?
Określa, ile pamięci mamy zarezerwowane dla liczby.- **8-bit:** Wartości od 0 do 255 (lub od -128 do 127). Odpowiada typowi
charlubbyte. - **16-bit:** Wartości do 65 535. Odpowiada typowi
short. - **32-bit:** Standardowy
intw nowoczesnych językach. - **64-bit:** Dla bardzo dużych liczb (
long long,BigInt).
Dlaczego liczba 255 w HEX zapisywana jest jako FF?
System szesnastkowy ma 16 cyfr (0-9 i A-F), gdzie F ma wartość 15. LiczbaFF jest obliczana jako: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Jak przeliczyć kolor HEX na RGB?
Kolor w sieci, np.#E05412, składa się z trzech bajtów: Czerwony (E0), Zielony (54), Niebieski (12).
Wprowadź "E0" do pola HEX w naszym konwerterze -> otrzymasz 224.
Wprowadź "54" -> otrzymasz 84.
Wprowadź "12" -> otrzymasz 18.
Wynik to rgb(224, 84, 18).
Co oznaczają prefiksy 0x, 0b lub 0o?
Aby programiści rozróżnili systemy, używa się prefiksów:0x= Szesnastkowy (np. 0xFF)0b= Binarny (np. 0b101)0o= Ósemkowy (np. 0o755)
Dlaczego pole zaświeciło się na czerwono?
To jest funkcja walidacji danych wejściowych. Oznacza to, że wprowadzono znak, który nie należy do danego systemu. Na przykład:- Litera "G" w HEX (dozwolone są tylko A-F).
- Cyfra "2" w BIN (dozwolone są tylko 0 i 1).
- Cyfra "8" w OCT (dozwolone są tylko 0-7).