Doug LLYOYD: nomor Jadi heksadesimal, seolah-olah kita membutuhkan jumlah basis lain skema yang tepat? Nah, kebanyakan budaya Barat, Anda mungkin sudah familiar, menggunakan basis system-- desimal 10, untuk mewakili data numerik. Kami memiliki angka 0, 1, 2, 3, 5, 6, 7,8,9. Dan jika kita perlu untuk mewakili nilai yang lebih tinggi dari sembilan, kita bisa menggabungkan mereka digit menggunakan gagasan nilai tempat. Jadi untuk 10, kami memiliki 1 digit diikuti dengan 0 digit dan kami secara intuitif memahami bahwa apa yang kita lakukan ada kita mengalikan pertama 1 sebesar 10, dan kemudian menambahkan 0 untuk total 10. Komputer melakukan sesuatu yang cukup sama, karena Anda mungkin akrab, dengan biner system-- basis 2. Perbedaannya ada yang bahwa hanya ada 2 digit bekerja with-- 0 dan 1. Dan nilai-nilai tempat kami, bukannya satu, sepuluh, seratus, seribu, karena mereka akan berada di sistem desimal, adalah salah satu, dua, empat, delapan, dan seterusnya. Ada satu hal meskipun, mereka 0 dan 1, terutama jika kita sedang ilmuwan komputer dan kami melakukan banyak pemrograman atau bekerja dengan komputer, yang akan akan melihat banyak bilangan biner. Dan orang-orang 0 dan 1 dalam rantai besar bisa sangat sulit untuk mengurai. Kita tidak bisa hanya melihat serangkaian 0 dan 1 dan tentu tahu persis apa itu. Tapi masih berguna untuk dapat Data mengungkapkan dengan cara yang sama bahwa komputer tidak. Kami memiliki gagasan dari sistem heksadesimal, yang merupakan basis 16, bukan basis 10 atau basis 2. Yang berarti bahwa kita memiliki 16 digit untuk bekerja dengan bukan 10 atau 2. Dan itu jauh lebih cara ringkas untuk mengekspresikan informasi biner pada sistem komputer, itu jauh lebih manusiawi dimengerti. Jadi kita memiliki angka 0 sampai 9, dan kemudian kami juga memiliki tambahan ini enam digits-- sebuah, b, c, d, e, dan f, yang mewakili 10, Gagasan kami 10, 11, 12, 13, 14 dan 15, dalam desimal. Kadang-kadang, dengan cara, Anda juga akan melihat ini melalui f sebagai ibukota A melalui F, yang merupakan cara saya cenderung untuk melakukannya. Hanya saja saya lebih suka gaya, tapi entah baik-baik saja, mereka berdua mewakili cukup banyak hal yang sama. Jadi mengapa keren heksadesimal? Mengapa kita perlu menggunakan ini dasar tambahan lainnya? Kita sudah memiliki 2 dan 10, mengapa kita perlu 16? Nah 16 adalah kekuatan 2, dan seterusnya setiap digit heksadesimal, 0 melalui f, sesuai dengan yang unik pemesanan, atau pengaturan unik dari 4 digit biner, 4 bit. Dan dalam arti itu, kita dapat mengungkapkan sangat panjang, kompleks, bilangan biner dalam heksadesimal dalam banyak cara yang lebih ringkas, tanpa kehilangan informasi atau harus melakukan konversi terutama rumit pada angka-angka. Jadi, seperti yang saya hanya berkata, setiap digit heksadesimal sesuai dengan yang unik susunan 4 digit biner. Jadi string biner 0000 sesuai dengan heksadesimal digit 0. 0110 sesuai dengan heksadesimal digit 6. Dan 1111 berkoresponden untuk heksadesimal digit f. Jika Anda sedang melihat grafik ini, khususnya jika Anda mencari di sisi kiri grafik, Anda sudah bisa melihat ada sedikit masalah ambiguitas di sini. Desimal 0 adalah cukup banyak dibedakan dari heksadesimal 0, selain fakta bahwa itu di bawah kolom yang mengatakan heksadesimal. Tapi kami mungkin tidak akan selalu memiliki kolom yang ada. Umumnya ketika kita mengekspresikan angka ke notasi heksadesimal dengan jelas membedakan mereka dari notasi desimal, kita biasanya awalan mereka dengan awalan 0x. 0x berarti apa-apa dalam kenyataannya, itu hanya petunjuk bagi kita sebagai manusia bahwa apa yang kita lihat, atau sekitar untuk memulai parsing, adalah nomor heksadesimal. Jelas untuk angka yang lebih tinggi a, b, c, d, dan f, yang sesuai dengan 10-15 itu cukup ambigu itu itu angka heksadesimal. Dan pada kenyataannya, setiap heksadesimal nomor yang memiliki huruf di dalamnya, mungkin cukup jelas sebagai angka heksadesimal. Tapi, tetap saja, untuk Demi kejelasan, itu selalu ide yang baik untuk awalan setiap kali Anda merujuk digit heksadesimal sebagai sebuah nomor dengan awalan sebuah 0x. Jadi, biner, seperti yang kita kata, memiliki nilai-nilai tempat. Ada tempat yang, tempat berpasangan, tempat merangkak, dan tempat delapan. Dan desimal juga memiliki nilai-nilai tempat, yang, puluhan, ratusan, dan ribuan bahwa kita semua mungkin ingat dari sekolah dasar. Dan heksadesimal ada terkecuali di sini, benar-benar. Ini juga memiliki nilai-nilai tempat melainkan menjadi kekuatan dari 2 atau kekuasaan 10, mereka kekuatan 16. Jadi kita melihat sejumlah seperti kita ini cukup jelas tahu itu 397, kan? Nah jika kita melihat angka seperti ini, kita tahu ini bukan 397 lagi. Ini adalah heksadesimal yang angka tiga 9-7. Ini bukan 397, itu berarti sesuatu yang berbeda, karena kita menggunakan kekuatan dari 16 karena semua nilai tempat kami bukannya kekuatan dari 10. Bahkan, nilai-nilai tempat di sini akan menjadi tempat yang, tempat sixteens, dan tempat dua ratus lima puluh berenam, yang sesuai dengan gagasan kami yang Tempat, puluhan tempat, dan ratusan Tempat, jika jumlah itu 397. Tapi karena itu 0x 397, kita memiliki beberapa yang tempat tempat, sixteens, dan tempat dua ratus lima puluh berenam. Atau, 16 ke 0 tempat, yang adalah 1. Sebuah 16 untuk tempat listrik pertama, 16. Sebuah 16 kuadrat tempat, 256, dan seterusnya, dan seterusnya, dan seterusnya. Jadi nomor ini benar-benar 3 kali 16 kuadrat, ditambah 9 kali 16, ditambah 7. Saya tidak melakukan matematika di sini, tapi tidak 397, itu jauh, jauh lebih besar dari itu. Demikian pula, kita bisa memiliki adc 0x, baik itu kali 16 kuadrat. Atau jika kita menerjemahkan bahwa untuk gagasan kami angka desimal, yang 10 kali 16 kuadrat, ditambah d kali 16, atau ditambah 13 kali 16. Dan jangan khawatir jika Anda belum hafal bahwa d adalah 13, atau sesuatu seperti itu, ada tidak terlalu banyak surat digit ini dan itu akan menjadi intuitif cukup cepat. Jadi sekali lagi ini adalah 10 kali 16 kuadrat, ditambah 13 kali 16, ditambah 12 kali 1. Adc jadi 0x. Jadi, seperti yang saya katakan, setiap kelompok 4 digit biner sesuai dengan tunggal digit heksadesimal, dan sehingga benar-benar benar-benar mudah untuk mengubah bolak-balik antara hex dan biner. Jika Anda memiliki tali yang panjang ini digit biner, semua yang perlu Anda lakukan adalah mulai mengelompokkan mereka tepat ke kiri sebagai kelompok 4. Dan kemudian Anda dapat mengkonsolidasikan mereka menjadi nomor heksadesimal, sangat membatasi jumlah Digit Anda harus mengolah mental. Alih-alih 32 0 dan 1, seperti yang akan kita lihat dalam satu detik, Anda mungkin bisa mendapatkannya turun hanya 8 digit heksadesimal, banyak lebih ringkas. Grafik beberapa slide kembali akan membantu Anda untuk mengetahui pemetaan ini, meskipun, sekali lagi Anda akan menghafalkannya cukup cepat. Kami akan pergi melalui contoh sekarang. Jadi jika kita memiliki nomor seperti ini, bilangan biner ini benar-benar besar, atau apa yang tampaknya menjadi bilangan biner besar. Dan alasan saya mengatakan bahwa, itu hanya so-- itu raksasa, kan? Ada begitu banyak 0 dan 1 ada. Tapi kami mungkin tidak benar-benar memiliki rasa apa besarnya jumlah ini benar-benar. Kami tidak punya ide apa akan sesuai dengan desimal. Dan pada kenyataannya kita bahkan tidak akan melihat apa yang sesuai dengan di desimal sekarang. Kami mungkin bisa mengungkapkan hal ini dengan cara yang akan memberi kita beberapa informasi lebih lanjut tentang betapa besar jumlah ini. Jadi mari kita pergi ke proses konversi. Hal pertama yang perlu kita lakukan adalah kita ingin kelompok Angka ini keluar ke dalam kelompok 4, mulai dari kanan dan bekerja ke kiri. Ada yang akan terjadi 32 digit di sini, yang berarti kita harus istirahat bersih bagus dari 8 kelompok 4. Ingat bahwa setiap kelompok 4 di sini, unik berkorespondensi ke digit heksadesimal. Jadi kita akan mulai lagi membangun kami nomor dari kanan, dan bekerja kiri. Nah apa 1101? Baik kita melakukan matematika di kepala kita, kita memiliki 1 di tempat delapan, 1 di tempat merangkak, 0 dalam dua-dua Tempat, dan 1 di tempat yang. Itu 8 ditambah 4 ditambah 1, yang kita tahu sebagai 13. Tapi kami mungkin tidak akan menulis 13 keluar, karena kami bekerja dengan heksadesimal. Kita perlu untuk mengubahnya menjadi heksadesimal yang setara dengan 13, yang d. 0011, baik itu 0 di Tempat delapan, 0 dalam merangkak tempat, 1 di tempat berpasangan, dan 1 di tempat yang. Itu 3. Maksud saya terus melakukan hal ini lagi, kita miliki di sini 9. Dan kemudian 11, tapi itu b, recall. 2, 10-- atau a-- 6, dan 4. Dan sehingga string yang sangat besar 0 dan 1 dari atas lebih ringkas diungkapkan dalam heksadesimal sebagai 0x 46a2b93d. Nah, OK, kita telah belajar baru keterampilan keren, apa gunanya? Kita mungkin tidak menggunakan ini semua waktu, karena kita akan segera melihat, kita menggunakan heksadesimal cukup banyak sebagai programmer. Belum tentu untuk Tujuan melakukan matematika dengan itu, tetapi karena banyak kali alamat memori di sistem kami direpresentasikan dalam heksadesimal. Ini adalah cara yang sangat singkat untuk mengekspresikan jika tidak rumit, angka biner. Dan, sekali lagi, Anda mungkin not-- Anda mungkin tidak akan melakukan apapun matematika dengan itu, Anda tidak akan mengalikan nomor heksadesimal bersama-sama, atau melakukan sesuatu yang aneh seperti itu. Tapi itu adalah keterampilan yang berguna untuk memiliki sehingga Anda dapat mengekspresikan dan memahami memori alamat, dan lainnya cara menggunakan data dalam C. Aku Doug Lloyd, ini CS50.