„To wszystko 1s i 0s”. Ludzie mówią to, gdy robią sobie żart lub sarkastyczną uwagę. Jeśli chodzi o myślenie o komputerach, to naprawdę jest to prawda. I na poziomie sprzętowym, to wszystko jest. Procesor, pamięć, różne formy pamięci masowej, złącza USB, HDMI i sieciowe, a także wszystko inne w tym telefonie komórkowym, tablecie, laptopie czy komputerze stacjonarnym wykorzystuje tylko 1 i 0. Bajty umożliwiają grupowanie tych 1 i 0. Są więc bardzo pomocne w utrzymaniu ich w porządku. Przyjrzyjmy się, jak to robią.
Bajty są jednostką miary dla danych i programów przechowywanych i używanych w komputerze. Chociaż bajt istniał przez długi czas w historii komputerów i przyjął kilka form, to jego obecna 8-bitowa długość jest dobrze ustalona. Taken albo pojedynczo lub jako przylegające grupy, bajty są ogólnie przyjęte najbardziej powszechny sposób Bity w komputerze są przechowywane zorganizowane.
Więc co to jest bit? Bit jest cyfrą binarną, to znaczy, że może mieć tylko dwie wartości. W komputerach dwie wartości, które może mieć bit to zero (0) i jeden (1). To wszystko, nie ma innych możliwości. Bajt to tylko osiem bitów binarnych, które razem reprezentują liczby binarne. Poprzez różne schematy kodowania liczby te mogą reprezentować szeroką gamę innych rzeczy, takich jak znaki, z którymi piszemy.
Poniższa tabela przedstawia pojedynczy bajt Big-Endian pokazujący poszczególne bity tego bajtu i ich powiązane potęgi dwójki. Wszystkie bajty danych są w formacie Big-Endian. Istnieją inne bajty, takie jak kod programu, gdzie formatowanie endianowe nie ma zastosowania. Wartość dziesiętna każdej potęgi dwójki jest pokazana przy każdym bajcie dla odniesienia. Wyobraź sobie linię pomiędzy bitem 3 a bitem 4, gdzie bajt jest podzielony na cztery grupy bitów zwane Nibble. Little-Endian jest bardzo często używanym formatem bajtu. Zostań z nami, aby dowiedzieć się więcej na temat endianów. Jeśli jesteś ciekawy nazwy, wyszukaj (etymologia endian).
Jeden bajt Big-Endian:
Bit0 | Bit1 | Bit2 | Bit3 | Bit4 | Bit5 | Bit6 | Bit7 | |
Moc 2 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 21 |
Wartość dziesiętna | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Każdy nibble bajtu może pomieścić czterobitową liczbę binarną, jak pokazano w poniższej tabeli. Jeśli bit jest ustawiony na „1”, to potęga dwójki dodaje się do wartości nibbita. Jeśli bit jest ustawiony na „0”, potęga dwójki nie dodaje się do wartości nibble. Bajt, który jest dwoma nibblami, może pomieścić dwucyfrową liczbę szesnastkową. Bity to tak naprawdę wszystko, co komputer może wykorzystać. Programiści i inżynierowie tworzący sprzęt komputerowy używają liczby szesnastkowej, aby ułatwić sobie pracę z bitami. W poniższej tabeli najbardziej znaczący bit jest po lewej stronie 20, 21, 22, 23
Jeden Big-Endian Nibble:
Binary Number |
Hexidecimal Value |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
Wyjaśnię Big- Endian zaczynając od jednego bajtu.Endian zaczynając od jednobajtowego diagramu. Dłuższe linie na końcu tej ramki są granicami bajtu, więc gdybyś rysował grupę sąsiednich bajtów, byłoby jasne, gdzie jeden bajt się skończył, a drugi zaczął. Małe linie dzielą ramkę na poszczególne miejsca, gdzie można pokazać każdy z ośmiu bitów. Średnia linia w środku dzieli bajt na dwa równe czterobitowe kawałki, które są nibble. Nibble również mają długą i zróżnicowaną historię. Nigdy nie widziałem, że zostały one znormalizowane. Jednak obecnie dobrze ustalony pogląd jest taki, że nibble są grupami czterech bitów, jak pokazałem je poniżej. Wszystkie te linie istnieją tylko wtedy, gdy ludzie rysują bajty. Linie nie istnieją w komputerze.
Górna Nibble i Dolna Nibble są etykietami, jak byłyby używane w Big-Endian bajt. W Big-Endian, najbardziej znacząca cyfra jest na lewym końcu liczby. Tak więc Lower Nibble jest najmniej znaczącą połową liczby w bajcie. Podobnie najmniej znaczący bit jest po prawej stronie LSBit (zwykle określany jako LSB) oznacza Least Significant Bit (najmniej znaczący bit). I najbardziej znaczący bit jest po lewej stronie. Górny Nibble po lewej stronie jest najbardziej znaczącą połową liczby. MSBit (zwykle notowany jako MSB) jest najbardziej znaczącym bitem. To jest to samo, jak piszemy liczby dziesiętne z najbardziej znaczącą cyfrą po lewej stronie. Nazywa się to Big-Endian, ponieważ „duży koniec” liczby przychodzi jako pierwszy.
Z bajtem będącym w stanie pomieścić dwie cyfry szesnastkowe, bajt może pomieścić liczby szesnastkowe pomiędzy 00 i FF (0 do 255 w systemie dziesiętnym) Więc jeśli używasz bajtów do reprezentowania znaków języka czytelnego dla człowieka, po prostu dajesz każdemu znakowi, znakowi interpunkcyjnemu, itp. numer. (Następnie oczywiście spraw, aby wszyscy zgodzili się z wymyślonym przez Ciebie kodowaniem). Jest to tylko jedno z zastosowań bajtów. Bajty są również używane jako kod programu, który uruchamia twój komputer, numery dla różnych danych, które możesz mieć, i wszystko inne, co zamieszkuje komputer w procesorze, pamięci, pamięci masowej, lub porusza się po różnych magistralach i portach interfejsu.
Jak się okazuje, istnieją dwa powszechnie używane formaty bajtów. Little-Endian został użyty we wcześniejszych przykładach. Jego cechą jest posiadanie najbardziej znaczącej cyfry po lewej i najmniej znaczącej po prawej stronie.
Istnieje również format zwany Little-Endian. Jak można się spodziewać jest on przeciwieństwem Big-Endian z najmniej znaczącą cyfrą po lewej stronie i najbardziej znaczącą po prawej. Jest to przeciwieństwo tego, jak zapisujemy liczby dziesiętne. Little-Endian nie jest używany do określania kolejności bitów w bajcie, ale jest używany do określania kolejności bajtów w większej strukturze. Na przykład: Duża liczba zawarta w słowie Little-Endian Word składającym się z dwóch bajtów miałaby najmniej znaczący bajt po lewej stronie. Gdyby ta dwubajtowa liczba była w Big-Endian, najbardziej znaczący bajt byłby po prawej stronie. Little-Endian jest używany tylko w kontekście długich liczb wielobajtowych, aby ustawić kolejność znaczenia bajtów w większej strukturze danych.
Istnieją powody używania zarówno Big jak i Little byte ordering, a mięsiste powody są poza zakresem tego artykułu. Jednakże, Little-Endian ma tendencję do stosowania w mikroprocesorach. Procesory x86-64 w większości komputerów PC używają formatu bajtów Little-Endian. Chociaż późniejsze generacje mają specjalne instrukcje, które zapewniają ograniczone użycie formatu Big-Endian. Format Big-Endian byte jest szeroko stosowany w sieci, a zwłaszcza w tych dużych komputerach Z. Teraz nie jesteś koniecznie ograniczony do jednego lub drugiego. Nowsze procesory ARM mogą używać obu formatów endianów. Urządzenia takie jak mikroprocesory, które mogą używać zarówno Big-Endian jak i Little Endian są czasami określane jako Bi-Endian.
Cóż, czasami naprawdę potrzebujesz więcej niż jeden bajt do przechowywania liczby. W tym celu dostępne są dłuższe formaty, które składają się z wielu bajtów. Na przykład: Procesory x86-64 Mają Słowa, które mają 16 bitów lub 2 bajty, które zdarzają się być wyłożone obok siebie głowa do ogona, że tak powiem. Mają też Double Words (32 bity lub 4 bajty), i Quad Words (64 bity lub 8 bajtów). Teraz są to tylko przykłady form danych udostępnianych przez sprzęt procesora.
Programiści pracujący z językami mają o wiele więcej sposobów organizowania bitów i bajtów. Kiedy program jest gotowy, kompilator lub inny mechanizm przekształca sposób, w jaki program ma bity i bajty zorganizowane w formy danych, z którymi sprzęt procesora może sobie poradzić.