1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 Doug LLYOYD: nomor Jadi heksadesimal, seolah-olah kita membutuhkan jumlah basis lain 3 00:00:08,510 --> 00:00:09,970 skema yang tepat? 4 00:00:09,970 --> 00:00:13,000 Nah, kebanyakan budaya Barat, Anda mungkin sudah familiar, 5 00:00:13,000 --> 00:00:16,560 menggunakan basis system-- desimal 10, untuk mewakili data numerik. 6 00:00:16,560 --> 00:00:20,520 Kami memiliki angka 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 Dan jika kita perlu untuk mewakili nilai yang lebih tinggi dari sembilan, 8 00:00:23,890 --> 00:00:26,800 kita bisa menggabungkan mereka digit menggunakan gagasan nilai tempat. 9 00:00:26,800 --> 00:00:30,115 Jadi untuk 10, kami memiliki 1 digit diikuti dengan 0 digit 10 00:00:30,115 --> 00:00:32,240 dan kami secara intuitif memahami bahwa apa yang kita lakukan 11 00:00:32,240 --> 00:00:35,500 ada kita mengalikan pertama 1 sebesar 10, 12 00:00:35,500 --> 00:00:37,689 dan kemudian menambahkan 0 untuk total 10. 13 00:00:37,689 --> 00:00:40,480 Komputer melakukan sesuatu yang cukup sama, karena Anda mungkin akrab, 14 00:00:40,480 --> 00:00:42,409 dengan biner system-- basis 2. 15 00:00:42,409 --> 00:00:44,700 Perbedaannya ada yang bahwa hanya ada 2 digit 16 00:00:44,700 --> 00:00:46,770 bekerja with-- 0 dan 1. 17 00:00:46,770 --> 00:00:49,033 Dan nilai-nilai tempat kami, bukannya satu, 18 00:00:49,033 --> 00:00:52,600 sepuluh, seratus, seribu, karena mereka akan berada di sistem desimal, 19 00:00:52,600 --> 00:00:57,690 adalah salah satu, dua, empat, delapan, dan seterusnya. 20 00:00:57,690 --> 00:01:00,842 Ada satu hal meskipun, mereka 0 dan 1, terutama 21 00:01:00,842 --> 00:01:03,800 jika kita sedang ilmuwan komputer dan kami melakukan banyak pemrograman 22 00:01:03,800 --> 00:01:06,924 atau bekerja dengan komputer, yang akan akan melihat banyak bilangan biner. 23 00:01:06,924 --> 00:01:11,660 Dan orang-orang 0 dan 1 dalam rantai besar bisa sangat sulit untuk mengurai. 24 00:01:11,660 --> 00:01:16,610 Kita tidak bisa hanya melihat serangkaian 0 dan 1 dan tentu tahu 25 00:01:16,610 --> 00:01:17,810 persis apa itu. 26 00:01:17,810 --> 00:01:21,980 Tapi masih berguna untuk dapat Data mengungkapkan dengan cara yang sama 27 00:01:21,980 --> 00:01:23,480 bahwa komputer tidak. 28 00:01:23,480 --> 00:01:26,580 Kami memiliki gagasan dari sistem heksadesimal, yang merupakan 29 00:01:26,580 --> 00:01:29,840 basis 16, bukan basis 10 atau basis 2. 30 00:01:29,840 --> 00:01:34,420 Yang berarti bahwa kita memiliki 16 digit untuk bekerja dengan bukan 10 atau 2. 31 00:01:34,420 --> 00:01:37,180 Dan itu jauh lebih cara ringkas untuk mengekspresikan 32 00:01:37,180 --> 00:01:41,210 informasi biner pada sistem komputer, itu jauh lebih manusiawi dimengerti. 33 00:01:41,210 --> 00:01:43,520 Jadi kita memiliki angka 0 sampai 9, dan kemudian 34 00:01:43,520 --> 00:01:49,480 kami juga memiliki tambahan ini enam digits-- sebuah, b, c, d, e, dan f, yang mewakili 10, 35 00:01:49,480 --> 00:01:56,050 Gagasan kami 10, 11, 12, 13, 14 dan 15, dalam desimal. 36 00:01:56,050 --> 00:01:59,787 Kadang-kadang, dengan cara, Anda juga akan melihat ini melalui f sebagai ibukota A 37 00:01:59,787 --> 00:02:01,620 melalui F, yang merupakan cara saya cenderung untuk melakukannya. 38 00:02:01,620 --> 00:02:04,560 Hanya saja saya lebih suka gaya, tapi entah baik-baik saja, 39 00:02:04,560 --> 00:02:07,870 mereka berdua mewakili cukup banyak hal yang sama. 40 00:02:07,870 --> 00:02:09,090 >> Jadi mengapa keren heksadesimal? 41 00:02:09,090 --> 00:02:11,580 Mengapa kita perlu menggunakan ini dasar tambahan lainnya? 42 00:02:11,580 --> 00:02:14,310 Kita sudah memiliki 2 dan 10, mengapa kita perlu 16? 43 00:02:14,310 --> 00:02:21,650 Nah 16 adalah kekuatan 2, dan seterusnya setiap digit heksadesimal, 0 melalui f, 44 00:02:21,650 --> 00:02:25,440 sesuai dengan yang unik pemesanan, atau pengaturan unik 45 00:02:25,440 --> 00:02:29,060 dari 4 digit biner, 4 bit. 46 00:02:29,060 --> 00:02:34,570 Dan dalam arti itu, kita dapat mengungkapkan sangat panjang, kompleks, bilangan biner 47 00:02:34,570 --> 00:02:36,440 dalam heksadesimal dalam banyak cara yang lebih ringkas, 48 00:02:36,440 --> 00:02:41,080 tanpa kehilangan informasi atau harus melakukan konversi terutama rumit 49 00:02:41,080 --> 00:02:42,480 pada angka-angka. 50 00:02:42,480 --> 00:02:44,880 >> Jadi, seperti yang saya hanya berkata, setiap digit heksadesimal 51 00:02:44,880 --> 00:02:48,630 sesuai dengan yang unik susunan 4 digit biner. 52 00:02:48,630 --> 00:02:53,670 Jadi string biner 0000 sesuai dengan heksadesimal digit 0. 53 00:02:53,670 --> 00:03:00,340 0110 sesuai dengan heksadesimal digit 6. 54 00:03:00,340 --> 00:03:05,225 Dan 1111 berkoresponden untuk heksadesimal digit f. 55 00:03:05,225 --> 00:03:07,100 Jika Anda sedang melihat grafik ini, khususnya 56 00:03:07,100 --> 00:03:09,099 jika Anda mencari di sisi kiri grafik, 57 00:03:09,099 --> 00:03:11,970 Anda sudah bisa melihat ada sedikit masalah ambiguitas di sini. 58 00:03:11,970 --> 00:03:15,229 Desimal 0 adalah cukup banyak dibedakan dari heksadesimal 0, 59 00:03:15,229 --> 00:03:18,020 selain fakta bahwa itu di bawah kolom yang mengatakan heksadesimal. 60 00:03:18,020 --> 00:03:22,130 >> Tapi kami mungkin tidak akan selalu memiliki kolom yang ada. 61 00:03:22,130 --> 00:03:25,420 Umumnya ketika kita mengekspresikan angka ke notasi heksadesimal 62 00:03:25,420 --> 00:03:28,130 dengan jelas membedakan mereka dari notasi desimal, 63 00:03:28,130 --> 00:03:31,860 kita biasanya awalan mereka dengan awalan 0x. 64 00:03:31,860 --> 00:03:35,990 0x berarti apa-apa dalam kenyataannya, itu hanya petunjuk bagi kita sebagai manusia 65 00:03:35,990 --> 00:03:39,190 bahwa apa yang kita lihat, atau sekitar untuk memulai parsing, 66 00:03:39,190 --> 00:03:40,750 adalah nomor heksadesimal. 67 00:03:40,750 --> 00:03:45,590 Jelas untuk angka yang lebih tinggi a, b, c, d, dan f, yang sesuai dengan 10-15 68 00:03:45,590 --> 00:03:48,840 itu cukup ambigu itu itu angka heksadesimal. 69 00:03:48,840 --> 00:03:51,620 Dan pada kenyataannya, setiap heksadesimal nomor yang memiliki huruf di dalamnya, 70 00:03:51,620 --> 00:03:54,642 mungkin cukup jelas sebagai angka heksadesimal. 71 00:03:54,642 --> 00:03:56,350 Tapi, tetap saja, untuk Demi kejelasan, itu 72 00:03:56,350 --> 00:03:58,290 selalu ide yang baik untuk awalan setiap kali Anda 73 00:03:58,290 --> 00:04:01,835 merujuk digit heksadesimal sebagai sebuah nomor dengan awalan sebuah 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Jadi, biner, seperti yang kita kata, memiliki nilai-nilai tempat. 76 00:04:06,810 --> 00:04:10,040 Ada tempat yang, tempat berpasangan, tempat merangkak, dan tempat delapan. 77 00:04:10,040 --> 00:04:13,640 Dan desimal juga memiliki nilai-nilai tempat, yang, puluhan, ratusan, dan ribuan 78 00:04:13,640 --> 00:04:15,910 bahwa kita semua mungkin ingat dari sekolah dasar. 79 00:04:15,910 --> 00:04:18,050 Dan heksadesimal ada terkecuali di sini, benar-benar. 80 00:04:18,050 --> 00:04:22,660 Ini juga memiliki nilai-nilai tempat melainkan menjadi kekuatan dari 2 atau kekuasaan 10, 81 00:04:22,660 --> 00:04:25,050 mereka kekuatan 16. 82 00:04:25,050 --> 00:04:29,410 >> Jadi kita melihat sejumlah seperti kita ini cukup jelas tahu itu 397, kan? 83 00:04:29,410 --> 00:04:33,420 Nah jika kita melihat angka seperti ini, kita tahu ini bukan 397 lagi. 84 00:04:33,420 --> 00:04:36,730 Ini adalah heksadesimal yang angka tiga 9-7. 85 00:04:36,730 --> 00:04:39,680 Ini bukan 397, itu berarti sesuatu yang berbeda, 86 00:04:39,680 --> 00:04:44,180 karena kita menggunakan kekuatan dari 16 karena semua nilai tempat kami bukannya kekuatan 87 00:04:44,180 --> 00:04:45,560 dari 10. 88 00:04:45,560 --> 00:04:50,570 Bahkan, nilai-nilai tempat di sini akan menjadi tempat yang, tempat sixteens, 89 00:04:50,570 --> 00:04:55,080 dan tempat dua ratus lima puluh berenam, yang sesuai dengan gagasan kami yang 90 00:04:55,080 --> 00:04:59,180 Tempat, puluhan tempat, dan ratusan Tempat, jika jumlah itu 397. 91 00:04:59,180 --> 00:05:03,620 Tapi karena itu 0x 397, kita memiliki beberapa yang tempat tempat, sixteens, 92 00:05:03,620 --> 00:05:05,780 dan tempat dua ratus lima puluh berenam. 93 00:05:05,780 --> 00:05:09,460 Atau, 16 ke 0 tempat, yang adalah 1. 94 00:05:09,460 --> 00:05:12,420 Sebuah 16 untuk tempat listrik pertama, 16. 95 00:05:12,420 --> 00:05:17,080 Sebuah 16 kuadrat tempat, 256, dan seterusnya, dan seterusnya, dan seterusnya. 96 00:05:17,080 --> 00:05:24,400 Jadi nomor ini benar-benar 3 kali 16 kuadrat, ditambah 9 kali 16, ditambah 7. 97 00:05:24,400 --> 00:05:28,980 Saya tidak melakukan matematika di sini, tapi tidak 397, itu jauh, jauh lebih besar dari itu. 98 00:05:28,980 --> 00:05:34,050 >> Demikian pula, kita bisa memiliki adc 0x, baik itu kali 16 kuadrat. 99 00:05:34,050 --> 00:05:38,220 Atau jika kita menerjemahkan bahwa untuk gagasan kami angka desimal, yang 10 kali 100 00:05:38,220 --> 00:05:44,160 16 kuadrat, ditambah d kali 16, atau ditambah 13 kali 16. 101 00:05:44,160 --> 00:05:47,410 Dan jangan khawatir jika Anda belum hafal bahwa d adalah 13, atau sesuatu seperti itu, 102 00:05:47,410 --> 00:05:49,201 ada tidak terlalu banyak surat digit ini 103 00:05:49,201 --> 00:05:52,820 dan itu akan menjadi intuitif cukup cepat. 104 00:05:52,820 --> 00:05:59,800 Jadi sekali lagi ini adalah 10 kali 16 kuadrat, ditambah 13 kali 16, ditambah 12 kali 1. 105 00:05:59,800 --> 00:06:03,640 Adc jadi 0x. 106 00:06:03,640 --> 00:06:07,750 >> Jadi, seperti yang saya katakan, setiap kelompok 4 digit biner 107 00:06:07,750 --> 00:06:10,000 sesuai dengan tunggal digit heksadesimal, 108 00:06:10,000 --> 00:06:12,570 dan sehingga benar-benar benar-benar mudah untuk mengubah bolak-balik 109 00:06:12,570 --> 00:06:14,690 antara hex dan biner. 110 00:06:14,690 --> 00:06:18,310 Jika Anda memiliki tali yang panjang ini digit biner, semua yang perlu Anda lakukan 111 00:06:18,310 --> 00:06:21,320 adalah mulai mengelompokkan mereka tepat ke kiri sebagai kelompok 4. 112 00:06:21,320 --> 00:06:26,550 Dan kemudian Anda dapat mengkonsolidasikan mereka menjadi nomor heksadesimal, 113 00:06:26,550 --> 00:06:30,910 sangat membatasi jumlah Digit Anda harus mengolah mental. 114 00:06:30,910 --> 00:06:33,680 Alih-alih 32 0 dan 1, seperti yang akan kita lihat dalam satu detik, 115 00:06:33,680 --> 00:06:37,630 Anda mungkin bisa mendapatkannya turun hanya 8 digit heksadesimal, banyak 116 00:06:37,630 --> 00:06:39,200 lebih ringkas. 117 00:06:39,200 --> 00:06:43,500 >> Grafik beberapa slide kembali akan membantu Anda untuk mengetahui pemetaan ini, 118 00:06:43,500 --> 00:06:45,660 meskipun, sekali lagi Anda akan menghafalkannya cukup cepat. 119 00:06:45,660 --> 00:06:47,320 Kami akan pergi melalui contoh sekarang. 120 00:06:47,320 --> 00:06:51,507 Jadi jika kita memiliki nomor seperti ini, bilangan biner ini benar-benar besar, 121 00:06:51,507 --> 00:06:53,340 atau apa yang tampaknya menjadi bilangan biner besar. 122 00:06:53,340 --> 00:06:56,260 Dan alasan saya mengatakan bahwa, itu hanya so-- itu raksasa, kan? 123 00:06:56,260 --> 00:06:58,959 Ada begitu banyak 0 dan 1 ada. 124 00:06:58,959 --> 00:07:01,000 Tapi kami mungkin tidak benar-benar memiliki rasa apa 125 00:07:01,000 --> 00:07:02,870 besarnya jumlah ini benar-benar. 126 00:07:02,870 --> 00:07:06,150 Kami tidak punya ide apa akan sesuai dengan desimal. 127 00:07:06,150 --> 00:07:09,744 Dan pada kenyataannya kita bahkan tidak akan melihat apa yang sesuai dengan di desimal sekarang. 128 00:07:09,744 --> 00:07:11,660 Kami mungkin bisa mengungkapkan hal ini dengan cara yang 129 00:07:11,660 --> 00:07:15,640 akan memberi kita beberapa informasi lebih lanjut tentang betapa besar jumlah ini. 130 00:07:15,640 --> 00:07:17,270 >> Jadi mari kita pergi ke proses konversi. 131 00:07:17,270 --> 00:07:19,311 Hal pertama yang perlu kita lakukan adalah kita ingin kelompok 132 00:07:19,311 --> 00:07:23,050 Angka ini keluar ke dalam kelompok 4, mulai dari kanan 133 00:07:23,050 --> 00:07:24,120 dan bekerja ke kiri. 134 00:07:24,120 --> 00:07:27,260 Ada yang akan terjadi 32 digit di sini, yang berarti kita harus 135 00:07:27,260 --> 00:07:33,210 istirahat bersih bagus dari 8 kelompok 4. 136 00:07:33,210 --> 00:07:36,200 Ingat bahwa setiap kelompok 4 di sini, unik berkorespondensi 137 00:07:36,200 --> 00:07:37,760 ke digit heksadesimal. 138 00:07:37,760 --> 00:07:42,080 Jadi kita akan mulai lagi membangun kami nomor dari kanan, dan bekerja kiri. 139 00:07:42,080 --> 00:07:44,890 Nah apa 1101? 140 00:07:44,890 --> 00:07:49,220 Baik kita melakukan matematika di kepala kita, kita memiliki 1 di tempat delapan, 1 141 00:07:49,220 --> 00:07:54,310 di tempat merangkak, 0 dalam dua-dua Tempat, dan 1 di tempat yang. 142 00:07:54,310 --> 00:07:58,820 Itu 8 ditambah 4 ditambah 1, yang kita tahu sebagai 13. 143 00:07:58,820 --> 00:08:02,400 Tapi kami mungkin tidak akan menulis 13 keluar, karena kami bekerja dengan heksadesimal. 144 00:08:02,400 --> 00:08:07,982 Kita perlu untuk mengubahnya menjadi heksadesimal yang setara dengan 13, yang d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, baik itu 0 di Tempat delapan, 0 dalam merangkak tempat, 146 00:08:12,940 --> 00:08:15,190 1 di tempat berpasangan, dan 1 di tempat yang. 147 00:08:15,190 --> 00:08:16,880 Itu 3. 148 00:08:16,880 --> 00:08:20,180 Maksud saya terus melakukan hal ini lagi, kita miliki di sini 9. 149 00:08:20,180 --> 00:08:23,850 Dan kemudian 11, tapi itu b, recall. 150 00:08:23,850 --> 00:08:30,570 2, 10-- atau a-- 6, dan 4. 151 00:08:30,570 --> 00:08:34,669 Dan sehingga string yang sangat besar 0 dan 1 dari atas 152 00:08:34,669 --> 00:08:38,549 lebih ringkas diungkapkan dalam heksadesimal sebagai 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> Nah, OK, kita telah belajar baru keterampilan keren, apa gunanya? 155 00:08:45,870 --> 00:08:49,560 Kita mungkin tidak menggunakan ini semua waktu, karena kita akan segera melihat, 156 00:08:49,560 --> 00:08:52,370 kita menggunakan heksadesimal cukup banyak sebagai programmer. 157 00:08:52,370 --> 00:08:55,060 Belum tentu untuk Tujuan melakukan matematika dengan itu, 158 00:08:55,060 --> 00:08:58,470 tetapi karena banyak kali alamat memori di sistem kami 159 00:08:58,470 --> 00:09:00,440 direpresentasikan dalam heksadesimal. 160 00:09:00,440 --> 00:09:04,390 Ini adalah cara yang sangat singkat untuk mengekspresikan jika tidak rumit, angka biner. 161 00:09:04,390 --> 00:09:06,440 Dan, sekali lagi, Anda mungkin not-- Anda mungkin 162 00:09:06,440 --> 00:09:07,640 tidak akan melakukan apapun matematika dengan itu, Anda tidak 163 00:09:07,640 --> 00:09:09,848 akan mengalikan nomor heksadesimal bersama-sama, 164 00:09:09,848 --> 00:09:11,770 atau melakukan sesuatu yang aneh seperti itu. 165 00:09:11,770 --> 00:09:16,120 Tapi itu adalah keterampilan yang berguna untuk memiliki sehingga Anda dapat mengekspresikan dan memahami 166 00:09:16,120 --> 00:09:23,290 memori alamat, dan lainnya cara menggunakan data dalam C. 167 00:09:23,290 --> 00:09:26,240 >> Aku Doug Lloyd, ini CS50. 168 00:09:26,240 --> 00:09:28,028