Konwerter systemow liczbowych preview

Konwerter systemow liczbowych

Konwertuj liczby między systemami binarnym (podstawa 2), ósemkowym (podstawa 8), dziesiętnym (podstawa 10) i szesnastkowym (podstawa 16).

Najwazniejsze funkcje

  • Binary/Octal/Decimal/Hex
  • Live conversion
  • Hex letter support
  • Copy results

Guide

Konwersja systemów liczbowych to proces wyrażania wartości w jednym pozycyjnym systemie liczbowym używając innej bazy. Cztery najpowszechniejsze bazy w informatyce i matematyce to binarna (podstawa 2), ósemkowa (podstawa 8), dziesiętna (podstawa 10) i szesnastkowa (podstawa 16). Każdy programista, inżynier elektryk i student informatyki napotyka regularnie te systemy. Ten przewodnik wyjaśnia, jak działa każda baza, metody konwersji między nimi oraz praktyczne sytuacje, w których każda baza jest właściwym wyborem. System dziesiętny to system, którego używasz codziennie. Ma dziesięć cyfr: od 0 do 9. Każda pozycja w liczbie dziesiętnej reprezentuje potęgę 10. Liczba 5207 oznacza 5 razy 1000, plus 2 razy 100, plus 0 razy 10, plus 7 razy 1. Ta koncepcja wartości pozycyjnej ma zastosowanie do każdej bazy. Jedyną rzeczą, która się zmienia, jest liczba dostępnych cyfr i potęga, którą reprezentuje każda pozycja. System dziesiętny prawie na pewno wyewoluował, bo ludzie mają dziesięć palców, czyniąc dziesięć naturalnym grupowaniem. System binarny używa dwóch cyfr: 0 i 1. Każda pozycja reprezentuje potęgę 2. Liczba binarna 1101 oznacza 1 razy 8, plus 1 razy 4, plus 0 razy 2, plus 1 razy 1, co równa się 13 w dziesiętnym. Komputery działają w systemie binarnym, bo obwody elektroniczne mają dwa stabilne stany: włączony i wyłączony, wysokie napięcie i niskie napięcie. Każdy element danych, który przetwarza Twój komputer, od tekstu po wideo po instrukcje oprogramowania, jest ostatecznie reprezentowany jako sekwencje jedynek i zer. Liczby binarne szybko stają się długie. Liczba dziesiętna 255 to 11111111 w binarnym, osiem cyfr dla tego, co dziesiętny obsługuje w trzech. Dlatego programiści rzadko piszą surowe binarne dla dużych wartości. Używają ósemkowego lub szesnastkowego jako skrótowych notacji, które czysto mapują się na binarny, bo 8 i 16 są obydwie potęgami 2. System ósemkowy używa ośmiu cyfr: od 0 do 7. Każda cyfra ósemkowa odpowiada dokładnie trzem cyfrom binarnym. Liczba ósemkowa 17 równa się binarnemu 001 111, co jest dziesiętnym 15. Ósemkowy był historycznie ważny w informatyce, gdy systemy używały architektur z rozmiarami słów podzielnymi przez 3 (jak maszyny 12-bitowe, 24-bitowe i 36-bitowe). Dziś ósemkowy pojawia się najpowszechniej w uprawnieniach plików Unix/Linux. Wartość uprawnień 755 oznacza, że właściciel może czytać, pisać i wykonywać (7 równa się 111 w binarnym), podczas gdy grupa i inni mogą czytać i wykonywać, ale nie pisać (5 równa się 101 w binarnym). Polecenie chmod na Linuxie i macOS używa liczb ósemkowych do ustawiania uprawnień plików, czyniąc wiedzę ósemkową istotną dla każdego administratora systemu lub dewelopera pracującego na systemach opartych na Unixie. System szesnastkowy używa szesnastu cyfr: od 0 do 9 i od A do F, gdzie A reprezentuje 10, B to 11, C to 12, D to 13, E to 14, a F to 15. Każda cyfra szesnastkowa mapuje się dokładnie na cztery cyfry binarne. To czyni szesnastkowy preferowanym skrótem dla danych binarnych w nowoczesnej informatyce. Wartość szesnastkowa FF równa się binarnemu 1111 1111, co jest dziesiętnym 255. Pojedynczy bajt (8 bitów) jest zawsze reprezentowalny jako dokładnie dwie cyfry szesnastkowe, czyniąc szesnastkowy idealnym do wyświetlania zawartości pamięci, wartości kolorów, adresów MAC i skrótów kryptograficznych. Konwersja z dziesiętnego do jakiejkolwiek innej bazy używa powtarzanego dzielenia. Aby przekonwertować dziesiętne 200 na binarne, dziel 200 przez 2 powtarzalnie i zapisuj reszty. 200 podzielone przez 2 to 100 reszta 0. 100 podzielone przez 2 to 50 reszta 0. 50 podzielone przez 2 to 25 reszta 0. 25 podzielone przez 2 to 12 reszta 1. 12 podzielone przez 2 to 6 reszta 0. 6 podzielone przez 2 to 3 reszta 0. 3 podzielone przez 2 to 1 reszta 1. 1 podzielone przez 2 to 0 reszta 1. Czytanie reszt od dołu do góry daje 11001000. Ta sama metoda działa dla jakiejkolwiek bazy docelowej. Aby przekonwertować 200 na szesnastkowe, dziel przez 16: 200 podzielone przez 16 to 12 reszta 8, 12 podzielone przez 16 to 0 reszta 12 (co jest C). Czytanie od dołu do góry daje C8. Konwersja z jakiejkolwiek bazy do dziesiętnej używa formuły wartości pozycyjnej. Pomnóż każdą cyfrę przez jej potęgę pozycyjną i zsumuj wyniki. Dla szesnastkowego 2F3: 2 razy 256 (16 do kwadratu) plus 15 razy 16 (F to 15) plus 3 razy 1 równa się 512 plus 240 plus 3, co jest 755 w dziesiętnym. Ta metoda działa dla jakiejkolwiek bazy źródłowej. Dla binarnego 101010: 1 razy 32 plus 0 razy 16 plus 1 razy 8 plus 0 razy 4 plus 1 razy 2 plus 0 razy 1 równa się 42 w dziesiętnym. Konwersja między binarnym a szesnastkowym jest prosta, bo każda cyfra szesnastkowa to dokładnie cztery cyfry binarne. Pogrupuj liczbę binarną w chunki po cztery, zaczynając od prawej, z wypełnieniem wiodącymi zerami, jeśli potrzebne. Binarny 10110111 staje się 1011 0111, co jest B7 w szesnastkowym. W drugą stronę zastąp każdą cyfrę szesnastkową jej czterobitowym odpowiednikiem binarnym. Szesnastkowy A3 staje się 1010 0011. To bezpośrednie mapowanie to powód, dla którego szesnastkowy jest tak popularny w kontekstach programistycznych. Konwersja między binarnym a ósemkowym następuje według tej samej zasady z grupami po trzy. Binarny 10110111 staje się 010 110 111 (wypełniony wiodącym zerem), co jest 267 w ósemkowym. Ósemkowy 52 staje się 101 010 w binarnym. Trzybitowe grupowanie czyni ósemkowy mniej wygodnym niż szesnastkowy dla nowoczesnych architektur bajtów 8-bitowych, dlatego szesnastkowy w dużej mierze zastąpił ósemkowy w większości kontekstów programistycznych. Konwersja między ósemkowym a szesnastkowym nie ma bezpośredniego skrótu. Standardowe podejście to konwersja przez binarny jako krok pośredni. Przekształć liczbę ósemkową na binarną (każda cyfra ósemkowa na trzy bity), następnie zgrupuj ponownie cyfry binarne w czterobitowe chunki i przekonwertuj na szesnastkowy. Na przykład ósemkowy 375 staje się binarny 011 111 101, zgrupowany ponownie jako 0 1111 1101, co jest szesnastkowym FD. Przejście przez binarny dodaje krok, ale proces jest w pełni mechaniczny i szybki z praktyką. Liczby ułamkowe w różnych bazach następują według tej samej logiki pozycyjnej, ale z ujemnymi potęgami. W dziesiętnym 0,75 oznacza 7 razy 0,1 plus 5 razy 0,01. W binarnym 0,11 oznacza 1 razy 0,5 plus 1 razy 0,25, co równa się 0,75 w dziesiętnym. Nie wszystkie ułamki dziesiętne konwertują się na skończone ułamki binarne. Wartość dziesiętna 0,1 w binarnym to 0,0001100110011... powtarzająca się nieskończenie. To jest źródłowa przyczyna problemów precyzji zmiennoprzecinkowej w informatyce. Języki programowania używają prefiksów do rozróżniania systemów liczbowych w kodzie źródłowym. W C, Java, JavaScript, Pythonie i wielu innych językach 0b lub 0B oznacza binarny (0b1101), 0o lub 0O oznacza ósemkowy (0o17), a 0x lub 0X oznacza szesnastkowy (0xFF). Liczby bez prefiksu są dziesiętne. Niektóre starsze kody C używają wiodącego zera dla ósemkowego (017), co jest powszechnym źródłem błędów, gdy ktoś pisze 010 oczekując dziesiętnego 10, ale dostaje ósemkowe 8. Tryb ścisły JavaScript i nowoczesne wersje adresują to, wymagając jawnego prefiksu 0o dla ósemkowego. Kody kolorów w rozwoju webowym używają szesnastkowego w szerokim zakresie. Kolor CSS #3A7BFF rozkłada się na 3A dla kanału czerwonego (58 w dziesiętnym), 7B dla zielonego (123) i FF dla niebieskiego (255). Zrozumienie szesnastkowego pozwala Ci czytać i dostosowywać wartości kolorów bezpośrednio. Potrzebujesz nieco ciemniejszego niebieskiego? Zmień FF na E0. Chcesz przekonwertować wartość RGB 128, 64, 32 na szesnastkowy? Przekonwertuj każdy komponent: 128 to 80, 64 to 40, 32 to 20, co daje #804020. CSS obsługuje też skrócone kolory szesnastkowe, gdzie każdy kanał to jedna cyfra: #F00 rozszerza się do #FF0000 (czysta czerwień). Kanał alfa w 8-cyfrowych kolorach szesnastkowych (#3A7BFFCC) dodaje przezroczystość używając tej samej reprezentacji szesnastkowej. Adresy pamięci i debugowanie używają szesnastkowego jako standardowej reprezentacji. Gdy widzisz adres pamięci jak 0x7FFF5FBFF8A0, to wartość 48-bitowa wyrażona jako 12 cyfr szesnastkowych. Debuggery, edytory szesnastkowe i narzędzia zrzutu pamięci wszystkie wyświetlają dane w szesnastkowym, bo jest kompaktowy, mapuje się bezpośrednio na binarny i wyrównuje się dokładnie z granicami bajtów. Każda para cyfr szesnastkowych to jeden bajt, co ułatwia liczenie bajtów i identyfikację granic. Zrzut szesnastkowy wyświetla 16 bajtów na linię, z każdym bajtem pokazanym jako dwie cyfry szesnastkowe, obok reprezentacji znaku ASCII. Ten format to standardowy sposób na inspekcję plików binarnych, pakietów sieciowych i surowych danych dysku. Sieci opierają się na szesnastkowym dla adresów MAC (48 bitów, wyświetlanych jako sześć par jak A4:C3:F0:12:34:56) i adresów IPv6 (128 bitów, wyświetlanych jako osiem grup po cztery cyfry szesnastkowe jak 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Zrozumienie szesnastkowego jest istotne dla konfiguracji sieci i rozwiązywania problemów. Maski podsieci, gdy wyrażone w notacji CIDR, mapują się bezpośrednio na reprezentacje binarne, które pokazują, które bity identyfikują sieć, a które hosta. Skróty kryptograficzne produkują ciągi szesnastkowe o stałej długości. Skrót MD5 to 32 cyfry szesnastkowe (128 bitów). Skrót SHA-256 to 64 cyfry szesnastkowe (256 bitów). Gdy weryfikujesz pobieranie pliku porównując jego skrót z opublikowaną wartością, czytasz szesnastkowe. Każdy znak reprezentuje 4 bity wyjścia skrótu. Wartości skrótów są wyświetlane w szesnastkowym zamiast dziesiętnym, bo szesnastkowy jest bardziej kompaktowy i mapuje się bezpośrednio na binarne wyjście algorytmu haszującego. Operacje bitowe w programowaniu działają na poziomie binarnym, ale są często wyrażane w szesnastkowym dla czytelności. Maska bitowa jak 0xFF00 jest jaśniejsza niż jej odpowiednik dziesiętny 65280 i bardziej kompaktowa niż jej forma binarna 1111111100000000. Bitowe AND, OR, XOR i operacje przesunięcia są fundamentalne dla programowania niskopoziomowego, rozwoju sterowników urządzeń, implementacji protokołów i optymalizacji wydajności. Zrozumienie reprezentacji binarnej to warunek wstępny skutecznego używania tych operacji. Przesunięcie w lewo o 1 bit podwaja wartość. Przesunięcie w prawo o 1 bit dzieli ją na pół (dla liczb całkowitych bez znaku). AND z maską wyodrębnia konkretne bity. OR z maską ustawia konkretne bity. XOR odwraca konkretne bity. Kodowanie znaków ASCII i Unicode mapuje znaki na kody numeryczne, które są powszechnie wyświetlane w szesnastkowym. Litera A to 0x41 (dziesiętne 65). Spacja to 0x20 (dziesiętne 32). Kodowanie URL używa szesnastkowego: %20 reprezentuje spację, %3A reprezentuje dwukropek. Zrozumienie tych wartości szesnastkowych pomaga, gdy debugujesz problemy kodowania, parsujesz protokoły binarne lub pracujesz z surowymi strumieniami danych. Kodowanie UTF-8 używa sekwencji bajtów o zmiennej długości (od 1 do 4 bajtów), gdzie wzorzec binarny wiodących bitów wskazuje liczbę bajtów, czyniąc zrozumienie binarnego istotnym dla zrozumienia kodowania tekstu na poziomie bajtów. Liczby całkowite ze znakiem w binarnym używają reprezentacji zwanej uzupełnieniem do dwóch. W 8-bitowym systemie uzupełnienia do dwóch wartości wahają się od -128 do 127. Najwyższy bit to bit znaku: 0 dla dodatnich, 1 dla ujemnych. Liczba -1 jest reprezentowana jako 11111111 w 8-bitowym binarnym (0xFF w szesnastkowym). Liczba -128 to 10000000 (0x80). Aby zanegować liczbę w uzupełnieniu do dwóch, odwróć wszystkie bity i dodaj 1. Na przykład 5 w 8-bitowym binarnym to 00000101. Odwrócenie daje 11111010. Dodanie 1 daje 11111011, co reprezentuje -5. Uzupełnienie do dwóch to standard dla liczb całkowitych ze znakiem w praktycznie wszystkich nowoczesnych procesorach. Zrozumienie go zapobiega zamieszaniu, gdy debugujesz arytmetykę ze znakiem, czytasz zrzuty pamięci lub pracujesz z protokołami binarnymi. Liczby zmiennoprzecinkowe też mają reprezentację binarną zdefiniowaną przez standard IEEE 754. 32-bitowy float ma 1 bit znaku, 8 bitów wykładnika i 23 bity mantysy. 64-bitowy double ma 1 bit znaku, 11 bitów wykładnika i 52 bity mantysy. To jest powód, dla którego arytmetyka zmiennoprzecinkowa może produkować zaskakujące wyniki. Wartość dziesiętna 0,1 nie może być reprezentowana dokładnie w binarnym zmiennoprzecinkowym, tak jak 1/3 nie może być reprezentowana dokładnie w dziesiętnym. Gdy widzisz, że 0,1 plus 0,2 równa się 0,30000000000000004 w JavaScript, przyczyną są ograniczenia reprezentacji binarnej. Specjalne wartości obejmują plus i minus nieskończoność, minus zero i NaN (nie liczba), każda z specyficznymi wzorcami bitów. Kodowanie Base64 to inny system liczbowy używany w szerokim zakresie w informatyce, szczególnie do kodowania danych binarnych jako drukowalny tekst ASCII. Base64 używa 64 znaków (A-Z, a-z, 0-9, +, /) do reprezentowania 6-bitowych grup danych. Pojawia się w załącznikach e-mail (kodowanie MIME), URI danych w HTML i CSS, tokenach JWT oraz nagłówkach uwierzytelniania API. Każde 3 bajty danych binarnych stają się 4 znakami Base64, co skutkuje około 33-procentowym wzrostem rozmiaru. Base64 to nie szyfrowanie. To odwracalne kodowanie używane dla kompatybilności transportu danych. Dziesiętnie Zakodowany Binarny (BCD) to system hybrydowy, w którym każda cyfra dziesiętna jest reprezentowana przez jej 4-bitowy odpowiednik binarny, ale cyfry nie są łączone w jedną liczbę binarną. Liczba dziesiętna 42 w BCD to 0100 0010, co różni się od czystej reprezentacji binarnej 42 (101010). BCD jest używany w obliczeniach finansowych, zegarach cyfrowych i innych aplikacjach, gdzie precyzja dziesiętna jest ważna, a błędy zaokrąglania binarnego zmiennoprzecinkowego są niedopuszczalne. Niektóre procesory zawierają instrukcje arytmetyki BCD. Konwersja systemów liczbowych ma zastosowania w kompresji danych, kodach wykrywania błędów i elektronice cyfrowej. Algorytmy kompresji pracują z danymi binarnymi bezpośrednio. Obliczenia CRC (Cykliczna Kontrola Nadmiarowa) i sumy kontrolnej operują na reprezentacjach binarnych. Projektowanie obwodów cyfrowych używa bramek logicznych binarnych i tablic prawdy. Zdolność do płynnego poruszania się między dziesiętnym, binarnym, szesnastkowym i ósemkowym to kluczowa umiejętność we wszystkich tych dziedzinach. Częste błędy konwersji obejmują błędne liczenie wartości pozycyjnych (zapominanie, że pozycje zaczynają się od potęgi 0, nie potęgi 1), mylenie prefiksów ósemkowych i szesnastkowych w kodzie, gubienie wiodących zer w bajtach szesnastkowych (pisanie A zamiast 0A dla wartości bajtu) i błędne stosowanie zasad uzupełnienia do dwóch. Innym częstym błędem jest wykonywanie arytmetyki w złej bazie, jak dodawanie 0x10 i oczekiwanie 10, gdy wynik to faktycznie 16 w dziesiętnym. Konwerter systemów liczbowych WebRecast eliminuje te błędy, obsługując konwersje natychmiast i pokazując wynik we wszystkich czterech bazach jednocześnie. Do manualnej praktyki zapamiętaj wartości szesnastkowe od 0 do F i ich 4-bitowe odpowiedniki binarne. Gdy potrafisz konwertować pojedyncze cyfry szesnastkowe na binarne i z powrotem bez myślenia, większe konwersje stają się kwestią aplikowania tej wiedzy cyfra po cyfrze. Szesnastkowe 0 to 0000, 1 to 0001, 2 to 0010, 3 to 0011, 4 to 0100, 5 to 0101, 6 to 0110, 7 to 0111, 8 to 1000, 9 to 1001, A to 1010, B to 1011, C to 1100, D to 1101, E to 1110, a F to 1111. Ta szesnastoelementowa tabela odniesień to najbardziej użyteczna rzecz, jaką programista może zapamiętać do pracy z danymi niskopoziomowymi. Potęgi 2 warto zapamiętać przynajmniej do 2^16 (65536). Sekwencja to: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536. Te wartości pojawiają się stale w kontekstach programistycznych. 1024 bajty to kilobajt (technicznie kibibajt). 65535 (2^16 minus 1) to maksymalna wartość dla 16-bitowej liczby całkowitej bez znaku. 2147483647 (2^31 minus 1) to maksymalna 32-bitowa liczba całkowita ze znakiem. Rozpoznanie tych liczb natychmiast mówi Ci o binarnej strukturze za nimi. Rozmiary danych w informatyce używają potęg 2 i są wyrażane w bajtach. Bajt to 8 bitów. Kilobajt to 1024 bajty (2^10). Megabajt to 1 048 576 bajtów (2^20). Gigabajt to 1 073 741 824 bajty (2^30). Producenci pamięci masowej często używają potęg 10 zamiast (1 GB równa się 1 000 000 000 bajtów), co jest powodem, dla którego dysk 1 TB pokazuje około 931 GiB w Twoim systemie operacyjnym. Prefiksy IEC (kibi, mebi, gibi) zostały wprowadzone, by rozwiązać tę niejednoznaczność, ale branża nadal używa obu konwencji. Zrozumienie binarnej podstawy rozmiarów danych wyjaśnia, dlaczego te liczby pojawiają się wszędzie w informatyce. Kody wykrywania i korekcji błędów używają arytmetyki binarnej w szerokim zakresie. Bity parzystości dodają pojedynczy bit do słowa danych, by łączna liczba bitów 1 była albo parzysta (parzystość parzysta), albo nieparzysta (parzystość nieparzysta). Kody Hamminga używają wielu bitów parzystości na pozycjach, które są potęgami 2 (1, 2, 4, 8, 16), by wykrywać i korygować błędy pojedynczych bitów. Kody CRC używają dzielenia wielomianowego w binarnym (arytmetyka GF(2), gdzie dodawanie to XOR), by generować sumy kontrolne. Te techniki są fundamentalne dla niezawodnego przechowywania i transmisji danych. Algebra Boole'a, matematyka stojąca za logiką cyfrową, operuje w binarnym. Bramki AND, OR, NOT, XOR, NAND i NOR biorą wejścia binarne i produkują wyjścia binarne. Tablice prawdy wyliczają wszystkie możliwe kombinacje wejść i ich wyjścia. Mapy Karnaugh'a i upraszczanie Boole'a redukują złożone wyrażenia do minimalnych implementacji bramek. Każdy obwód cyfrowy, od prostego kalkulatora po nowoczesny procesor CPU, jest zbudowany z tych binarnych bramek logicznych. Zrozumienie binarnego to punkt wejścia do zrozumienia, jak działa sprzęt na najniższym poziomie. Zestawy instrukcji i kod maszynowy to sekwencje binarne, które procesor CPU wykonuje bezpośrednio. Instrukcja x86 jak MOV EAX, 5 jest kodowana jako bajty binarne. Język asemblera zapewnia czytelne dla człowieka mnemoniki dla tych instrukcji binarnych. Gdy kompilujesz kod w C, Java lub jakimkolwiek innym języku, kompilator ostatecznie produkuje binarne instrukcje maszynowe. Przeglądanie skompilowanego kodu w edytorze szesnastkowym ujawnia surowe binarne (wyświetlane jako bajty szesnastkowe), które uruchamia procesor. Komputery kwantowe wprowadzają inny paradygmat z kubitami, które mogą istnieć w superpozycjach 0 i 1. Klasyczne obliczenia binarne używają określonych bitów. Komputery kwantowe używają amplitud prawdopodobieństwa. Jednak wyjście obliczeń kwantowych jest mierzone jako klasyczne bity binarne. Interfejs między komputerami kwantowymi i klasycznymi nadal używa tradycyjnych systemów liczbowych, a algorytmy kwantowe są projektowane i analizowane używając konwencjonalnej matematyki binarnej. Konwerter systemów liczbowych WebRecast akceptuje wejście w jakiejkolwiek z czterech baz i wyprowadza równoważną wartość we wszystkich innych. Wpisz liczbę dziesiętną i zobacz jej reprezentacje binarną, ósemkową i szesnastkową. Wklej kod koloru szesnastkowego i zobacz jego formę binarną. Wprowadź ciąg binarny z dokumentacji i uzyskaj wartość dziesiętną. Konwersje następują w czasie rzeczywistym w miarę pisania, czyniąc to szybkim do eksplorowania, jak wartości relatywizują się między bazami. Używaj go obok swojego edytora kodu, debuggera lub narzędzi analizy danych, kiedykolwiek potrzebujesz szybko i dokładnie poruszać się między systemami liczbowymi.

Czeste pytania

What bases are supported?

Binary (2), Octal (8), Decimal (10), and Hexadecimal (16).

Powiazane poradniki

Powiazane sekcje WebRecast