Konwerter systemów liczbowych
Konwertuje między binarnym, ósemkowym, dziesiętnym i szesnastkowym. BigInt i operacje bitowe z szerokościami signed.
Bitwise operations
O tym narzędziu
Number Base Converter cross-tłumaczy integer między binarnym (baza 2), oktalnym (baza 8), dziesiętnym (baza 10) i hex (baza 16). Wpisz wartość w którymkolwiek z czterech pól, a pozostałe trzy aktualizują się synchronicznie. Matematyka dowolnej precyzji jest wbudowana — wklej 1024-bitowy hash i nadal dostaniesz dokładną odpowiedź, bez zaokrąglania floating-point.
Drugi panel uruchamia operacje bitowe na tej samej wartości: AND, OR, XOR, NOT, lewy shift, prawy shift, arytmetyczny prawy shift. Dla każdej operacji wybierasz szerokość integera (8/16/32/64 bity, signed lub unsigned), więc reprezentacje two's-complement są pokazane poprawnie — 0xFF to 255 w u8, ale -1 w i8, a narzędzie etykietuje oba. Live binarny preview podświetla indywidualne pozycje bitów, byś widział dokładnie, co się odwróciło.
Kiedy używać tego narzędzia
- Czytanie i pisanie flag konfiguracji. Wiele API używa bitmask flag; konwersja
0b10110na22lub odwrotnie to codzienny podatek tego stylu. - Debugowanie hex dumps. Bajt pokazujący
0xC0w pamięci? To192dziesiętnie,0b11000000binarnie. - Obliczanie wartości kolorów. Kolory hex CSS, kody escape ANSI i strumienie bajtów formatów obrazów wszystkie żyją w hex.
- Praca z uprawnieniami plików.
0o755↔0b111101101— konwersja to fundament Chmod Calculator.
O BigInt i szerokościach signed
NatywneNumber JavaScriptu traci precyzję poza 2^53. Używamy BigInt dla samej wartości, więc dowolny integer, który możesz zapisać, pasuje. Szerokości signed mają znaczenie dla liczb ujemnych: two's complement przy 8 bitach mówi 0b10000000 = -128; przy 16 bitach ten sam wzorzec to 32768. Narzędzie zawsze pokazuje Ci obie interpretacje, więc właściwa jest na jedno spojrzenie.
Najczęstsze pytania
Dlaczego 0xFF pokazuje się jako i 255, i -1?
Jak dużą liczbę narzędzie może obsłużyć?
Co to jest konwencja prefiksów?
0b dla binarnych (Python, JS, Rust), 0o dla oktalnych (Python, JS, Rust — starsza forma bare-leading-zero jest deprecated), 0x dla hex (uniwersalnie). Nasze narzędzie akceptuje inputy z lub bez prefiksów i zawsze emituje wyniki w konwencjonalnej prefiksowanej formie. C/C++ używa bare-leading-zero dla oktalnych (0755), co jest footgunem — nigdy nie wypisujemy tej formy.
Dlaczego shift-right zachowuje się czasem inaczej?
>>>) wypełnia wysokie bity zerami — używany dla wartości unsigned. Arytmetyczny (>>) wypełnia bitem znaku — zachowuje znak liczb ujemnych w two's complement. -8 >> 1 = -4 (arytmetyczny), ale -8 >>> 1 = 2147483644 (logiczny, 32-bit). Narzędzie eksponuje oba jako osobne przyciski.