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.