Konwerter Systemów Liczbowych
Konwertuj między binarnym, oktalnym, dziesiętnym, szesnastkowym i dowolną bazą od 2 do 36.
| Base | Value |
|---|---|
| 2 (binary) | … |
| 8 (octal) | … |
| 10 (decimal) | … |
| 16 (hex) | … |
| 32 | … |
| 36 | … |
Do czego to służy?
Liczby są tą samą liczbą niezależnie od bazy — 255, 0xff, 0b11111111 i 0o377 to to samo. Ale w której bazie czytasz albo piszesz, ma znaczenie, gdy tłumaczysz między layoutami pamięci, parsujesz kody kolorów, dekodujesz bit fieldy albo po prostu czytasz hex z debuggera. To narzędzie konwertuje między binary, octal, decimal, hex i dowolną bazą od 2 do 36, używając BigInt pod spodem, żebyś nie tracił precyzji na dużych liczbach.
Kiedy tego użyć
- Czytanie wartości hex ze stack trace i sprawdzanie, ile to dziesiętnie.
- Konwersja koloru CSS
0xff8800na trójkę RGB albo na odwrót. - Inspekcja bitmaski albo flagowego integera w binary, żeby zobaczyć, które bity są ustawione.
- Tłumaczenie między krótkimi ID-kami w bazie 36 a dziesiętnymi licznikami.
Rozpoznawane prefiksy
- Hex:
0x,0X,# - Binary:
0b,0B - Octal:
0o,0O - Underscore do grupowania cyfr:
1_000_000
Częste pułapki
- Liczby ujemne mają prefiks znaku, nie są w uzupełnieniu do dwóch.
-128jest pokazane jako-10000000w binary, nie10000000. Większość języków pokazuje tak samo dla integerów dowolnej precyzji. - Duże liczby nie tracą tu precyzji. JS-owy
Numberma kres w 253; to narzędzie używaBigInt, więc 64-bitowe integery, duże hashe i wartości kryptograficzne robią dokładny round-trip. - Nie myl bazy z wielkością liter. Litery base-16 mogą być wielkie albo małe; narzędzie akceptuje obie i emituje wielkie. Wyjścia base-32 / base-36 są małe z konwencji.
- Wiodące zera są usuwane.
0x000Fstaje sięF. Jeśli potrzebujesz hex stałej szerokości (np. do reprezentacji bajtów), dopadduj potem w swoim kodzie.