DOUG LLYOYD: numery Więc szesnastkowym, jakby potrzebowaliśmy inny numer bazowy
właściwy schemat?
Cóż, większość kultur zachodnich, jak zapewne znają,
użyj przecinka system-- bazy 10, do reprezentowania danych numerycznych.
Mamy cyfry 0, 1, 2, 3, 5, 6, 7,8,9.
A jeśli potrzebujesz do reprezentowania wartości powyżej dziewięciu,
możemy połączyć te cyfry używając pojęcia wartości lokalu.
Więc na 10, mamy 1 cyfra po cyfrze przez 0
i intuicyjnie zrozumieć że to, co robimy
istnieje jesteśmy pomnożenie pierwszy 1 przez 10,
a następnie dodanie 0 do sumy 10.
Komputery coś zrobić ładny podobnie, jak jesteś prawdopodobnie zna,
z binarnym system-- podstawy 2.
Różnica nie jest że istnieją tylko 2 cyfry
pracować with-- 0 i 1.
A więc nasze miejsce wartości, zamiast jednego,
dziesięć, sto, tysiąc, ponieważ będzie w systemie dziesiętnym,
są jeden, dwa, cztery, osiem, i tak dalej.
Oto rzeczy, choć, te 0 i 1, w szczególności
jeśli mamy być informatyków i robimy dużo programowania
lub pracy z komputerami, były dzieje należy widzieć wiele liczb binarnych.
I te 0 i 1 w dużych sieci może być bardzo trudne do analizowania.
Nie możemy po prostu patrzeć na ciąg 0 i 1 i musi wiedzieć,
dokładnie co to jest.
Ale to jeszcze przydaje się możliwość wyraźnych danych w taki sam sposób,
że komputer robi.
Mamy to pojęcie System szesnastkowy, który jest
Podstawa 16, zamiast podstawy 10 lub podstawy 2.
Co oznacza, że ​​mamy 16 cyfr pracować zamiast 10 lub 2.
I jest to o wiele bardziej zwięzły sposób wyrazić
binarny informacji w systemie komputerowym, to jest o wiele bardziej ludzka zrozumiałe.
Więc mamy cyfry 0 do 9, a następnie
mamy także te dodatkowe sześć digits-- się, b, c, d, e, i f, które odpowiadają 10,
nasz pogląd 10, 11, 12, 13, 14 i 15, w postaci dziesiętnej.
Czasami, przy okazji, będziesz również zobacz te a do f-tych jako kapitał a
przez F, który jest sposób staram się to zrobić.
To tylko moja preferowane styl, ale albo jest w porządku,
obaj reprezentują dość wiele to samo.
>> Więc dlaczego jest cool szesnastkowy?
Dlaczego musimy to wykorzystać inne dodatkowe baza?
Mamy już 2 i 10, po co nam 16?
No 16 jest potęgą 2, i tak każda cyfra szesnastkowa, 0 do F,
Odpowiada to unikalne zamawiania lub unikalny układ
z 4 cyfr binarnych, 4 bitów.
I tak, w tym sensie, możemy wyrazić bardzo długie, skomplikowane, liczb binarnych
w systemie szesnastkowym w miłym znacznie bardziej zwięzły sposób,
bez utraty informacji lub konieczności szczególnie uciążliwych zrobić konwersje
na tych liczb.
>> Tak więc, jak już powiedziałem, każda cyfra szesnastkowa
Odpowiada to unikalne Układ z 4 cyfr binarnych.
Tak więc ciąg binarny 0000 odpowiada szesnastkowym cyfrą 0.
0110 odpowiada szesnastkowym cyfrę 6.
I 1111 odpowiada do szesnastkowym cyfrowy f.
Jeśli szukasz w Ten wykres, szczególnie
jeśli szukasz u Lewa strona wykresu
widać już istnieje trochę problemem niejednoznaczności tutaj.
Dziesiętny 0 jest dość dużo nie do odróżnienia od szesnastkowym 0,
poza faktem, że jest to pod kolumna, która mówi szesnastkowo.
>> Ale chyba nie zawsze tak będzie mają tę kolumnę tam.
Ogólnie, gdy wyrażamy liczb w systemie szesnastkowym
wyraźnie rozróżnić je z notacji dziesiętnej,
zwykle je poprzedzić z przedrostkiem 0x.
0x nic nie znaczy w rzeczywistości, to tylko wskazówka dla nas jako ludzi
że to, co sami zobaczycie, lub zamierza rozpocząć analizowania,
Jest to liczba szesnastkowa.
Oczywiście dla większych cyfr, a, b, c, d, f, które odpowiadają 10-15
to jest dość jednoznaczne, że to to liczba w systemie szesnastkowym.
A w rzeczywistości, każdy szesnastkowym numer, który ma liter w nim,
to chyba dość oczywiste, jako liczba szesnastkowa.
Ale wciąż, dla jasności, to
zawsze dobry pomysł, aby prefiks każdym razem
odnosi się do cyfry w kodzie szesnastkowym Numer poprzedzając to 0x.
>> Tak, binarne, jak my powiedział, ma miejsce wartości.
Jest to miejsce, te, miejsce dwójki, miejsce czwórki, i ósemki miejsce.
A także miejsce dziesiętne ma wartości, ones, dziesiątki, setki i tysiące
że wszyscy możemy przywołać od szkoły podstawowej.
I szesnastkowym ma Wyjątkiem, naprawdę.
Posiada również miejsce, ale zamiast wartości bycia uprawnień 2 lub uprawnień 10,
oni uprawnienia 16.
>> Widzimy więc, jak ten numer my dość jasno wiedzieć, że to 397, prawda?
Cóż, jeśli widzimy szereg tak, wiemy, że to nie jest 397 więcej.
To szesnastkowym numer trzy-dziewięć-siedem.
To nie jest 397, to oznacza, coś innego,
ponieważ używamy uprawnień 16 jak wszystkie nasze miejsce wartości zamiast uprawnień
10.
W istocie, wartości tu miejsce będzie być miejsce te, miejsce sixteens,
i dwieście pięćdziesiąt szóstki miejsce, które odpowiadają naszej idei tych
miejsce, dziesiątki miejsce, a setki miejsce, jeśli liczba była 397.
Ale ponieważ jest to 0x 397, mamy sixteens ones miejsce, miejsce,
i dwieście pięćdziesiąt szóstki miejsce.
Albo, 16 do 0, które jest miejsce 1.
A 16 do pierwszego miejsca zasilania, 16.
A 16 do kwadratu miejsce, 256 i tak dalej, i tak dalej, i tak dalej.
Tak naprawdę ta liczba jest 3 razy 16 do kwadratu plus 9 razy 16 plus 7.
Nie do matematyki, ale to nie jest 397, to jest o wiele, wiele większe niż to.
>> Podobnie, możemy mieć 0x ADC, dobrze, że to razy 16 do kwadratu.
Albo, jeśli tłumaczymy, że do naszego pojęcia liczb po przecinku, to 10 razy
16 do kwadratu plus d razy 16, lub plus 13 razy 16.
I nie martw się, jeśli nie na pamięć że d jest 13, lub coś podobnego,
nie ma tam zbyt wiele z tych cyfr, liter
i będzie to stać Intuicyjny dość szybko.
Więc jeszcze raz to jest 10 razy 16 do kwadratu, oraz 13 razy 16, plus 12 razy 1.
Więc 0x ADC.
>> Tak, jak powiedziałem, na co grupa 4 cyfr binarnych
odpowiada pojedyncza szesnastkowy cyfrowy,
a więc jest to rzeczywiście bardzo łatwo zmienić w przód iw tył
między formacie binarnym i szesnastkowym.
Jeśli masz ten długi ciąg cyfr binarnych, wszystko co musisz zrobić,
jest rozpocząć grupując je w prawo w lewo, jak grupy 4.
A potem można skonsolidować je do liczb szesnastkowych,
poważnie ogranicza liczbę cyfry trzeba przetwarzać psychicznie.
Zamiast 32 0 i 1-ki, jak zobaczymy za chwilę,
może być w stanie dostać się na dół do zaledwie 8 cyfr szesnastkowych, dużo
bardziej zwięzłe.
>> Wykresy kilka zjeżdżalnie BACK pomóc dowiedzieć się, to odwzorowanie,
choć znowu będziesz zapamiętać je dość szybko.
Pojedziemy przez przykład teraz.
Więc jeśli mamy wiele w ten sposób, to naprawdę duża liczba binarna,
lub co wydaje się być duża liczba binarna.
A powodem mogę powiedzieć, że jest to tylko SO- jest to moloch, prawda?
Jest tak wielu 0 i 1 jest tam.
Ale chyba nie naprawdę mają sens tego, co
wielkość tego numeru jest naprawdę.
Nie mamy pojęcia, co go będzie odpowiadać po przecinku.
A w rzeczywistości nawet nie zobaczyć, co to odpowiada w przecinku teraz.
Możemy być w stanie Wyrażając to w taki sposób, że
da nam trochę więcej informacji o tym, jak duży jest ten numer jest.
>> Więc chodźmy do tego procesu konwersji.
Pierwszą rzeczą, jaką musimy zrobić, to chcemy grupy
te cyfry na zewnątrz do grup 4, wychodząc od prawego
i działa się na lewo.
Nie stało się 32 cyfr tutaj, co oznacza, że ​​mamy
ładne czyste przerwa 8 grup po 4.
Pamiętaj, że każdej grupy 4 tutaj, niepowtarzalnie odpowiada
w systemie szesnastkowym.
Więc zaczniemy znowu Budowanie naszej Numer z prawej i lewej roboczych.
No co jest 1101?
Cóż możemy zrobić matematyki w naszej głowie, mamy 1 miejsce w ósemki, A 1
w miejscu, w czworakach, a 0 w dwójkami miejsce, a 1 w miejscu jedynek.
To 8 oraz 4 plus 1, które znamy jako 13.
Ale prawdopodobnie nie pisać 13 z, ponieważ pracujemy z szesnastkowym.
Musimy przekształcić go w systemie szesnastkowym odpowiednik 13, które jest d.
>> 0011, dobrze, że to 0 w ósemki miejsce, wartość 0 czwórkami miejscu,
1 na miejscu dwójek, i 1 w miejscu nich.
To 3.
To znaczy robić to znowu mamy tutaj 9.
A następnie 11, ale to b, przypomnieć.
2, 10-- lub A-- 6 i 4.
I tak, że bardzo duży ciąg z 0 i 1-tych na górze
jest bardziej zwięźle wyrażony w systemie szesnastkowym jako 0x 46a2b93d.
>> No, OK, nauczyliśmy nowy fajne umiejętności, o co chodzi?
Możemy nie używać tego wszystkiego Czas, jak mamy zamiar wkrótce,
używamy szesnastkowo dość dużo jak programistów.
Niekoniecznie dla Celem temu matematyczne z nim,
ale dlatego, że wiele razy adresy pamięci w naszym systemie
są reprezentowane w systemie szesnastkowym.
To bardzo zwięzły sposób wyrazić w inny sposób uciążliwe, liczb binarnych.
I tak, jeszcze raz, może not-- prawdopodobnie jesteś
Nie będziemy robić żadnych matematyki z tym, że nie są
będzie pomnożenie Liczby szesnastkowe razem,
lub robi coś dziwnego w tym stylu.
Ale jest to przydatna umiejętność mieć więc można wyrazić i zrozumieć
Pamięć adresy i inne sposoby wykorzystania danych w C
>> Jestem Doug Lloyd, to CS50.