Kalkulator binarny
Wykonaj dodawanie, odejmowanie, mnożenie i dzielenie w układzie binarnym. Konwertuj pomiędzy układem binarnym i dziesiętnym. Darmowy kalkulator matematyczny. Uzyskaj natychmiastowe wyniki teraz.
Binarny system liczbowy: jak liczą komputery
Każdy komputer, smartfon i urządzenie cyfrowe wewnętrznie przechowuje i przetwarza wszystkie informacje w formie binarnej, ponieważ obwody elektryczne mogą wiarygodnie reprezentować dwa odrębne stany: wysokie napięcie (1) i niskie napięcie (0).
Każda pozycja w liczbie binarnej reprezentuje potęgę 2, rosnącą od prawej do lewej:
| Pozycja | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
|---|---|---|---|---|---|---|---|---|
| Wartość | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Przetłumaczenie z liczby binarnej na liczbę dziesiętną:Pomnóż każdy bit przez jego wartość miejscową i sumuj wszystkie wyniki.
Przykład:101101012= 1x128 + 0x64 + 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 1x1 = 128 + 32 + 16 + 4 + 1 =181
Konwersja z liczby dziesiętnej na liczbę binarną:Wielokrotnie dzielić przez 2, rejestrując resztę na każdym kroku, a następnie odczytywać resztę od dołu do góry.
Przykład: Przekształcenie 181 na liczbę binarną:
- 181 ÷ 2 = 90 pozostałości1
- 90 ÷ 2 = 45 pozostałości0
- 45 ÷ 2 = 22 reszta1
- 22 ÷ 2 = 11 pozostałości0
- 11 ÷ 2 = 5 pozostałości1
- 5 ÷ 2 = 2 reszta1
- 2 ÷ 2 = 1 reszta0
- 1 ÷ 2 = 0 pozostałości1
Przeczytaj resztę od dołu do góry:101101012 ✓
Arytmetyka binarna: dodawanie, odejmowanie i mnożenie
Arytmetyka binarna podąża za tymi samymi zasadami co dziesiętna, ale przeniesienia zdarzają się przy 2 zamiast 10.
Zasady dodawania binarnego:0+0=0, 0+1=1, 1+0=1, 1+1=10 (przeprowadzenie 1), 1+1+1=11 (przeprowadzenie 1)
Przykład: 10112 + 11012 (11 + 13 = 24)
1011 + 1101 ------ 11000
Praca od prawej do lewej: 1+1=10 (napisać 0, przenieść 1); 1+0+1=10 (napisać 0, przenieść 1); 0+1+1=10 (napisać 0, przenieść 1); 1+1+1=11 (napisać 1, przenieść 1); ostateczny przenieść pisze 1. Wynik: 110002 = 24
Komplement dwóch (oddzielenie binarne):Komputery obsługują liczby ujemne i odejmowanie za pomocą reprezentacji uzupełnienia dwóch. Aby znaleźć uzupełnienie dwóch liczb: odwróć wszystkie bity, a następnie dodaj 1.
Przykład: -13 w 8-bitowym uzupełnieniu dwóch: +13 = 000011012 -> odwróć wszystkie bity -> 111100102 -> dodaj 1 ->111100112
Pozwala to na wykonanie odejmowania jako dodawania: 20 - 13 = 20 + (-13).
Mnożenie binarnejest eleganckie: każdy produkt częściowy to 0 (pomnożenie przez 0) lub sama liczba (pomnożenie przez 1), przesunięta w lewo.
1011 x 101 ----- 1011 (1011 x 1) 0000 (1011 x 0, przesunięte) 1011 (1011 x 1, przesunięte dwa razy) ------- 1101112 = 55
Binarność w obliczeniach: Bity, bajty i rozmiary danych
Zrozumienie jednostek binarnych jest niezbędne dla każdego, kto pracuje z komputerami, pamięcią lub prędkościami sieci:
| Jednostka | Rozmiar | Maksymalna wartość (niepodpisana) | Powszechne zastosowanie |
|---|---|---|---|
| Trochę. | 1 cyfra binarna | 1 | Flaga boolejska, pojedyncza wartość binarna |
| Przygryźć | 4 bity | 15 (hex: F) | Jedna cyfra sześćdziesiątkowa |
| Bajt | 8 bitów | Działania | Jeden znak (ASCII), kanał kolorowy |
| Słowo. | 16 bitów | 65535 | Stare systemy 16-bitowe, oparte na Unicode |
| Podwójne słowo (DWORD) | 32 bitów | 4 294 967 295 | 32-bitowe liczby całkowite, adresy IPv4 |
| Quad Word (QWORD) | 64 bitów | 18 446 744 073 709 551 615 | Nowoczesne liczby całkowite, wskaźniki, znaczniki czasu |
Wartości koloru:Kolory internetowe używają 24-bitowego RGB (8 bitów na kanał). #FF5733 = R:255, G:87, B:51. Każdy 8-bitowy kanał może reprezentować 256 odcieni (0 - 255).16 777 216(około 16,7 mln).
Uprawnienia do plików w systemie Unix/Linux:Każdy zestaw 3 bitów reprezentuje uprawnienia do czytania (r=4), pisania (w=2) i wykonywania (x=1) dla właściciela, grupy i innych.
Operacje bitwise i ich zastosowania
Operacje bitwise manipulują pojedynczymi bitami w obrębie liczb całkowitych.
| Działanie | Symbol | Zachowanie | Przykład |
|---|---|---|---|
| I | & | 1 jeśli oba bity są równe 1 | 1010 i 1100 = 1000 |
| OR | | | 1 jeśli każdy bit jest równy 1 | 1010. 1100 to 1110. |
| XOR | ^ | 1 jeśli bity są różne | 1010 ^ 1100 = 0110 |
| Nie | ~ | Odwróć wszystkie bity | ~1010 = 0101 |
| Lewa przesunięcie | << | Bity przesunięcia w lewo (x2 na każde przesunięcie) | 1011 << 1 = 10110 (x2) |
| Przesunięcie w prawo | >> | Bity przesunięcia w prawo (÷2 na każde przesunięcie) | 1011 >> 1 = 0101 (÷2) |
Praktyczne zastosowania:
- Maskowanie bitów:Sprawdź, czy określony bit jest ustawiony:
if (flags & 0b0100) { ... }-- sprawdza czy bit 2 jest 1. - Trochę ustawienia:
flags = flags | 0b0100-- ustawia bit 2 do 1 niezależnie od bieżącej wartości. - Trochę wyjaśnienia:
flags = flags & ~0b0100-- czyści bit 2 do 0. - Szybkie mnożenie/dzielenie przez potęgi 2:
n << 3= n x 8;n >> 2= n ÷ 4. przesunięcia bitów są operacjami na poziomie procesora, znacznie szybsze niż mnożenie. - Kontrola parzystych/nieparzystych:
if (n & 1) { /* odd */ }-- ostatni bit każdej liczby nieparzystej jest zawsze równy 1.
Porównanie systemów liczbowych: binarny, oktalny, dziesiętny, sześćdziesiątny
Informatyka wykorzystuje cztery systemy liczbowe, z których każdy nadaje się do różnych kontekstów:
| System | Podstawa | Liczby | Powszechne zastosowanie |
|---|---|---|---|
| Binarny (podstawa-2) | 2 | 0, 1 | Operacje procesora, pamięć, logika |
| Oktal (podstawa-8) | 8 | 0 - 7 | Uprawnienia do plików Unix, starsze systemy |
| Liczba dziesiętna (podstawa 10) | 10 | 0 - 9 | Liczby czytelne dla człowieka |
| Hexadecimalny (podstawa 16) | 16 | 0 - 9, A - F | Adresy pamięci, kody kolorowe, kod maszyny |
Szybkie przekształcenie: binarny <-> hex(4 cyfry binarne = 1 cyfra sześciokątna):
| Binarny | Hex . | Liczba dziesiętna | Binarny | Hex . | Liczba dziesiętna |
|---|---|---|---|---|---|
| 0000 (cztery) | 0 | 0 | 1000 złotych | 8 | 8 |
| 0001 | 1 | 1 | 1001 | 9 | 9 |
| 0010 | 2 | 2 | 1010 | A | 10 |
| 0011 | 3 | 3 | 1011 r. | B | 11 |
| 0100 i 0100 | 4 | 4 | 1100 mld zł | C | 12 |
| 0101 | 5 | 5 | 1101 r. | D | 13 |
| 0110 | 6 | 6 | 1110 r. | E | 14 |
| 0111 | 7 | 7 | 1111 r. | F | 15 |
To 4-bitowe grupowanie sprawia, że hex jest niezwykle przydatny jako kompaktowa notacja dla danych binarnych: 32-bitowa wartość11001010 00111111 10110101 00001100znacznie łatwiej jest zapisać jakoCA3FB50C.
Binary w sieci: adresy IP i maski podsieci
Zrozumienie systemu binarnego jest niezbędne dla inżynierii sieci, ponieważ adresy IPv4 są zasadniczo 32-bitowymi liczbami binarnymi, a podsieci - proces dzielenia sieci - opiera się całkowicie na operacjach binarnych.
Adres IPv4 jak192.168.1.100jest znakiem czytelnym dla człowieka dla 32-bitowej wartości binarnej:
11000000.10101000.00000001.01100100
A maska podsieciokreśla, która część adresu identyfikuje sieć, a która identyfikuje host. Maska 255.255.255.0 w systemie binarnym to:
11111111.11111111.11111111.00000000
Bitowy AND adresu IP i maski podsieci daje adres sieci:
| Składnik | Liczba dziesiętna | Binarny |
|---|---|---|
| Adres IP | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| Maska podsieci | 255.255.255.0 | 111111111111111111111111111111 |
| Sieć (I) | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
Opis CIDR (np. /24) określa liczbę 1-bitów wiodących w masce podsieci. Maska /24 ma 24 jedynki, po których następuje 8 zer, co pozwala na 28 - 2 = 254 użyteczne adresy hosta na podsieć. Maska /16 pozwala na 65 534 hosta. Inżynierowie sieci codziennie używają binarnej matematyki umysłowej do planowania podsieci, obliczania adresów transmisji i rozwiązywania problemów z routingiem.
Binarność w kryptografii i bezpieczeństwie
Nowoczesne algorytmy szyfrowania działają wyłącznie na poziomie binarnym, manipulując poszczególnymi bitami poprzez kombinacje XOR, przesunięcia bitów i operacje substytucyjne.
szyfrowanie XOR (podstawa współczesnych szyfrów):XOR ma unikalną właściwość - zastosowanie go dwa razy z tym samym kluczem zwraca pierwotną wartość: A K K = A. To sprawia, że XOR jest podstawą szyfrów strumieniowych i jednorazowych podkładek.
Przykład: szyfrowanie bajt 01001101 (litera "M" w ASCII) kluczem 10110010:
- Tekst prosty: 01001101
- Klucz: 10110010
- XOR (szyfrowane): 11111111
- XOR ponownie z tym samym kluczem (odszyfrowanie): 01001101 = "M"
Rozmiary klucza w nowoczesnym szyfrowaniu:AES-128 używa klucza 128-bitowego, co oznacza, że istnieje 2128 ~ 3.4 x 1038 możliwych kluczy - więcej niż liczba atomów we wszechświecie obserwowalnym. AES-256 używa kluczy 256-bitowych z 2256 możliwościami. Nawet najszybsze superkomputery nie mogą brutalnie zmusić tych przestrzeni klucza. Każdy dodatkowy bit podwaja przestrzeń wyszukiwania, dlatego długość klucza ma znaczenie w kryptografii.
Funkcje hashowe takie jak SHA-256 wytwarzają 256-bitowy (32-bajt) wyjście binarne z dowolnego wejścia. Nawet pojedyncza zmiana w wejściu wytwarza zupełnie inny hasz - właściwość zwana "efektem lawinowym", która sprawia, że hasze są przydatne do weryfikacji integralności danych, przechowywania haseł i zasilania technologii blockchain.
Komputery binarne i kwantowe:Podczas gdy klasyczne komputery używają bitów binarnych (0 lub 1), komputery kwantowe używają kubitów, które mogą istnieć w superpozycji obu stanów jednocześnie. Klasyczny klucz 256-bitowy ma 2256 możliwych wartości, które muszą być sprawdzane sekwencyjnie; komputer kwantowy uruchamiający algorytm Grovera mógłby przeszukać tę przestrzeń w √(2256) = 2128 operacjach.
Często zadawane pytania
Dlaczego komputery używają liczb binarnych zamiast dziesiętnych?
Obwody elektroniczne są najbardziej niezawodne z zaledwie dwoma odrębnymi stanami: włączony (wysokie napięcie ~ 1) i wyłączony (niskie napięcie ~ 0).
Jaka jest największa liczba, którą może pomieścić bajt?
Bajt (8 bitów) może reprezentować 28 = 256 różnych wartości. Dla niepodpisanych liczb całkowitych: od 0 do 255. Dla podpisanych liczb całkowitych (komplement dwóch): od -128 do 127. Maksymalna wartość niepodpisanych bajtów w systemie binarnym to 111111112 = 255; w hex jest to FF.
Jak przekształcić ujemną liczbę w liczbę binarną?
Użyj uzupełnienia dwóch: (1) Przekształć wersję dodatnią w binarną, (2) Odwróć wszystkie bity (0->1, 1->0), (3) Dodaj 1. Przykład: -13 w 8-bitowym: +13 = 000011012, odwróć bity = 111100102, dodaj 1 = 111100112. W ten sposób wszystkie nowoczesne komputery przechowują liczby całkowite ujemne.
Jaka jest różnica między systemem binarnym a hexadecimalnym?
Oba są pozycyjnymi systemami liczbowymi używanymi w obliczeniach. Binary (base-2) używa tylko 0 i 1 - rodzimego języka komputerów. Hexadecimal (base-16) używa 0 - 9 i A - F jako kompaktowej notacji binarnej - każde 4 cyfry binarne odpowiadają dokładnie 1 cyfrze hex. Hex jest używany do adresów pamięci, kodów kolorów (#RRGGBB) i kodu maszynowego, ponieważ jest bardziej kompaktowy i czytelny niż surowy kod binarny.
Do czego służą operacje bitowe?
Operacje bitwise (AND, OR, XOR, NOT, shifts) manipulują pojedynczymi bitami w obrębie liczb całkowitych. Powszechne zastosowania: flagi i uprawnienia bitów (Unix chmod), sprawdzenie parzystych / nieparzystych (n & 1), szybkie mnożenie / dzielenie przez potęgi 2 (przesunięcie bitów), algorytmy szyfrowania, funkcje hashowe, wykrywanie błędów CRC, maski podsieci sieciowej i rozwój gier (kompaktowe przechowywanie stanu w pojedynczej liczbie całkowitej).
Czym jest binarny punkt zmienny i dlaczego 0.1 + 0.2 ≠ 0.3 w programowaniu?
Większość nowoczesnych komputerów używa IEEE 754 binary floating point, który reprezentuje ułamki dziesiętne w formacie binarnym. Tak jak 1/3 = 0,3333... nie może być dokładnie przedstawiona w formacie dziesiętnym, 1/10 nie może być dokładnie przedstawiona w formacie binarnym (jest to nieskończenie powtarzająca się ułamek binarny). To powoduje drobne błędy zaokrąglania: w większości języków, 0,1 + 0,2 = 0,30000000000000004.
Jak używa się kodu binarnego do przechowywania danych i rozmiarów plików?
Przechowywanie jest mierzone w bajtach (8 bitów), kilobitach (1.024 bajtów), megabajtach (1.024 KB), gigabajtach (1.024 MB) itp. Uwaga: producenci dysków twardych używają prefiksów SI (1 KB = 1.000 bajtów), podczas gdy systemy operacyjne używają prefiksów binarnych (1 KiB = 1.024 bajtów), powodując widoczną rozbieżność "brakującej przestrzeni" przy zakupie pamięci masowej.
Czym jest BCD (binary-coded decimal)?
BCD koduje każdą cyfrę dziesiętną jako 4-bitową grupę binarną: 0=0000, 1=0001, ..., 9=1001.