1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 DOUG LLYOYD: số Vì vậy, hệ thập lục phân, như thể chúng tôi cần một số cơ sở 3 00:00:08,510 --> 00:00:09,970 Đề án phải không? 4 00:00:09,970 --> 00:00:13,000 Vâng, hầu hết các nền văn hóa phương Tây, như bạn có lẽ đã quen thuộc, 5 00:00:13,000 --> 00:00:16,560 sử dụng các cơ sở system-- thập phân 10, để đại diện cho dữ liệu số. 6 00:00:16,560 --> 00:00:20,520 Chúng tôi có các chữ số 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 Và nếu chúng ta cần phải đại diện những giá trị cao hơn chín, 8 00:00:23,890 --> 00:00:26,800 chúng ta có thể kết hợp các chữ số sử dụng các khái niệm về giá trị nơi. 9 00:00:26,800 --> 00:00:30,115 Vì vậy, cho 10, chúng tôi có một 1 chữ số tiếp theo là một chữ số 0 10 00:00:30,115 --> 00:00:32,240 và chúng tôi trực giác hiểu rằng những gì chúng tôi đang làm 11 00:00:32,240 --> 00:00:35,500 có chúng tôi đang nhân đầu tiên 1 10, 12 00:00:35,500 --> 00:00:37,689 và sau đó thêm 0 cho tổng số là 10. 13 00:00:37,689 --> 00:00:40,480 Máy tính làm một cái gì đó khá tương tự, như bạn có thể quen, 14 00:00:40,480 --> 00:00:42,409 với các cơ sở nhị phân system-- 2. 15 00:00:42,409 --> 00:00:44,700 Sự khác biệt đó là rằng chỉ có 2 chữ số 16 00:00:44,700 --> 00:00:46,770 làm việc with-- 0 và 1. 17 00:00:46,770 --> 00:00:49,033 Và như vậy giá trị cho chúng ta, thay vì là một, 18 00:00:49,033 --> 00:00:52,600 mười, trăm, ngàn, như họ sẽ có trong hệ thập phân, 19 00:00:52,600 --> 00:00:57,690 là một, hai, bốn, tám, và như vậy. 20 00:00:57,690 --> 00:01:00,842 Dưới đây là những điều mặc dù, những của 0 và 1, đặc biệt 21 00:01:00,842 --> 00:01:03,800 nếu chúng ta đang được các nhà khoa học máy tính và chúng tôi đang làm rất nhiều chương trình 22 00:01:03,800 --> 00:01:06,924 hoặc làm việc với máy tính, đã đi để được nhìn thấy rất nhiều con số nhị phân. 23 00:01:06,924 --> 00:01:11,660 Và những người của 0 và 1 trong chuỗi lớn có thể rất khó khăn để phân tích. 24 00:01:11,660 --> 00:01:16,610 Chúng ta không thể chỉ nhìn vào một chuỗi các 0 và 1 người và nhất thiết phải biết 25 00:01:16,610 --> 00:01:17,810 chính xác những gì nó được. 26 00:01:17,810 --> 00:01:21,980 Nhưng nó vẫn còn hữu ích để có thể dữ liệu nhanh trong cùng một cách 27 00:01:21,980 --> 00:01:23,480 mà một máy tính nào. 28 00:01:23,480 --> 00:01:26,580 Chúng tôi có khái niệm về sự hệ thập lục phân, đó là 29 00:01:26,580 --> 00:01:29,840 cơ sở 16, thay vì 10 cơ sở hoặc cơ sở 2. 30 00:01:29,840 --> 00:01:34,420 Điều đó có nghĩa rằng chúng tôi có 16 chữ số để làm việc với thay vì 10 hoặc 2. 31 00:01:34,420 --> 00:01:37,180 Và đó là một nhiều hơn cách ngắn gọn để diễn tả 32 00:01:37,180 --> 00:01:41,210 thông tin nhị phân trên hệ thống máy tính, đó là con người dễ hiểu hơn. 33 00:01:41,210 --> 00:01:43,520 Vì vậy, chúng tôi có các chữ số 0 đến 9, và sau đó 34 00:01:43,520 --> 00:01:49,480 chúng tôi cũng có những phụ sáu digits-- một, b, c, d, đ, e, mà đại diện cho 10, 35 00:01:49,480 --> 00:01:56,050 khái niệm của chúng tôi là 10, 11, 12, 13, 14 và 15, trong số thập phân. 36 00:01:56,050 --> 00:01:59,787 Đôi khi, bằng cách này, bạn cũng sẽ thấy nhìn thấy những một đường f của vốn A 37 00:01:59,787 --> 00:02:01,620 thông qua F, đó là cách tôi có xu hướng để làm điều đó. 38 00:02:01,620 --> 00:02:04,560 Nó chỉ ưa thích của tôi phong cách, nhưng hoặc là tốt, 39 00:02:04,560 --> 00:02:07,870 cả hai đều đại diện cho khá nhiều điều tương tự. 40 00:02:07,870 --> 00:02:09,090 >> Vì vậy, tại sao lại là thập lục phân mát? 41 00:02:09,090 --> 00:02:11,580 Tại sao chúng ta cần phải sử dụng này cơ sở bổ sung khác? 42 00:02:11,580 --> 00:02:14,310 Chúng tôi đã có 2 và 10, tại sao chúng ta cần 16? 43 00:02:14,310 --> 00:02:21,650 Vâng 16 là một sức mạnh của 2, vv mỗi chữ số thập lục phân, 0 qua f, 44 00:02:21,650 --> 00:02:25,440 tương ứng với một độc đáo đặt hàng, hoặc sắp xếp độc đáo 45 00:02:25,440 --> 00:02:29,060 4 chữ số nhị phân, 4 bit. 46 00:02:29,060 --> 00:02:34,570 Và như vậy trong ý nghĩa đó, chúng ta có thể bày tỏ , phức tạp, số nhị phân rất dài 47 00:02:34,570 --> 00:02:36,440 trong hệ thập lục phân trong một nhiều cách ngắn gọn hơn, 48 00:02:36,440 --> 00:02:41,080 mà không bị mất thông tin hoặc phải làm chuyển đổi đặc biệt cồng kềnh 49 00:02:41,080 --> 00:02:42,480 về những con số. 50 00:02:42,480 --> 00:02:44,880 >> Vì vậy, như tôi vừa nói, chữ số thập lục phân mỗi 51 00:02:44,880 --> 00:02:48,630 tương ứng với một độc đáo sắp xếp của 4 chữ số nhị phân. 52 00:02:48,630 --> 00:02:53,670 Vì vậy, các chuỗi nhị phân 0000 tương ứng với chữ số thập lục phân 0. 53 00:02:53,670 --> 00:03:00,340 0110 tương ứng với chữ số thập lục phân 6. 54 00:03:00,340 --> 00:03:05,225 Và 1111 tương ứng để hệ thập lục phân chữ số f. 55 00:03:05,225 --> 00:03:07,100 Nếu bạn đang tìm kiếm biểu đồ này, đặc biệt 56 00:03:07,100 --> 00:03:09,099 nếu bạn đang tìm kiếm tại bên trái của biểu đồ, 57 00:03:09,099 --> 00:03:11,970 bạn đã có thể thấy có một chút của một vấn đề không rõ ràng ở đây. 58 00:03:11,970 --> 00:03:15,229 Số thập phân 0 là khá nhiều không thể phân biệt từ hệ thập lục phân 0, 59 00:03:15,229 --> 00:03:18,020 khác với thực tế rằng đó là theo một cột mà nói thập lục phân. 60 00:03:18,020 --> 00:03:22,130 >> Nhưng có lẽ chúng ta sẽ không phải lúc nào có cột đó. 61 00:03:22,130 --> 00:03:25,420 Thông thường khi chúng ta đang biểu lộ sự số vào ký hiệu thập lục phân 62 00:03:25,420 --> 00:03:28,130 để phân biệt rõ ràng chúng từ ký hiệu thập phân, 63 00:03:28,130 --> 00:03:31,860 chúng ta thường có tiền tố chúng với tiền tố 0x. 64 00:03:31,860 --> 00:03:35,990 0x có nghĩa là không có gì trong thực tế, nó chỉ là một đầu mối để chúng ta là con người 65 00:03:35,990 --> 00:03:39,190 rằng những gì chúng tôi đang về để xem, hoặc về để bắt đầu phân tích, 66 00:03:39,190 --> 00:03:40,750 là một số thập lục phân. 67 00:03:40,750 --> 00:03:45,590 Rõ ràng để các chữ số cao hơn a, b, c, d, e, tương ứng với 10-15 68 00:03:45,590 --> 00:03:48,840 nó khá rõ ràng đó là đó là một số thập lục phân. 69 00:03:48,840 --> 00:03:51,620 Và trên thực tế, bất kỳ hệ thập lục phân số có chữ ở trong đó, 70 00:03:51,620 --> 00:03:54,642 có lẽ là khá rõ ràng như một số thập lục phân. 71 00:03:54,642 --> 00:03:56,350 Nhưng, vẫn còn, cho sự vì lợi ích của sự rõ ràng, đó là 72 00:03:56,350 --> 00:03:58,290 luôn luôn là một ý tưởng tốt để tiền tố mỗi khi bạn 73 00:03:58,290 --> 00:04:01,835 đề cập đến một chữ số thập lục phân là một số bằng cách đặt trước một 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Vì vậy, nhị phân, như chúng ta cho biết, có giá trị nơi. 76 00:04:06,810 --> 00:04:10,040 Có nơi những người thân, một nơi twos, một nơi bốn chân, và một nơi Tám. 77 00:04:10,040 --> 00:04:13,640 Và số thập phân cũng có nơi giá trị, những người thân, hàng chục, hàng trăm, hàng ngàn 78 00:04:13,640 --> 00:04:15,910 rằng tất cả chúng ta có thể nhớ lại từ trường lớp. 79 00:04:15,910 --> 00:04:18,050 Và hệ thập lục phân là không có ngoại lệ ở đây, thực sự. 80 00:04:18,050 --> 00:04:22,660 Nó cũng có giá trị nơi nhưng thay vì trở quyền hạn của 2 vụ, quyền hạn của 10, 81 00:04:22,660 --> 00:04:25,050 họ quyền hạn của 16. 82 00:04:25,050 --> 00:04:29,410 >> Vì vậy, chúng ta thấy một số mặt hàng như chúng tôi này biết khá rõ ràng nó là 397, phải không? 83 00:04:29,410 --> 00:04:33,420 Vâng, nếu chúng ta thấy một số như thế này, chúng tôi biết đây không phải là 397 nữa. 84 00:04:33,420 --> 00:04:36,730 Đây là hệ thập lục phân số có ba 9-7. 85 00:04:36,730 --> 00:04:39,680 Đó không phải là 397, nó có nghĩa là cái gì đó khác nhau, 86 00:04:39,680 --> 00:04:44,180 bởi vì chúng ta đang sử dụng quyền hạn của 16 như tất cả các giá trị vị trí của chúng tôi thay vì của các cường quốc 87 00:04:44,180 --> 00:04:45,560 10. 88 00:04:45,560 --> 00:04:50,570 Trong thực tế, các giá trị nơi đây sẽ là nơi những người thân, nơi sixteens, 89 00:04:50,570 --> 00:04:55,080 và diễn ra hai-100-50-sixes, tương ứng với các ý tưởng của chúng ta về một người thân 90 00:04:55,080 --> 00:04:59,180 nơi, hàng chục địa điểm, và một trăm nơi, nếu con số này là 397. 91 00:04:59,180 --> 00:05:03,620 Nhưng kể từ khi nó 0x 397, chúng tôi có một người ra, sixteens nơi, 92 00:05:03,620 --> 00:05:05,780 và một nơi hai-100-50-sixes. 93 00:05:05,780 --> 00:05:09,460 Hoặc, một 16 đến 0 ra, mà là 1. 94 00:05:09,460 --> 00:05:12,420 A 16 đến nơi điện đầu tiên, 16. 95 00:05:12,420 --> 00:05:17,080 A 16 bình phương nơi, 256, và như vậy, và như vậy, và như vậy. 96 00:05:17,080 --> 00:05:24,400 Vì vậy, con số này thực sự là 3 lần 16 bình phương, cộng với 9 lần 16, cộng với 7. 97 00:05:24,400 --> 00:05:28,980 Tôi đã không làm như toán học ở đây, nhưng nó không phải 397, nó nhiều, lớn hơn nhiều so với điều đó. 98 00:05:28,980 --> 00:05:34,050 >> Tương tự như vậy, chúng ta có thể có adc 0x, đó cũng là một lần 16 bình phương. 99 00:05:34,050 --> 00:05:38,220 Hoặc nếu chúng ta dịch đó vào khái niệm của chúng tôi các số thập phân, đó là 10 lần 100 00:05:38,220 --> 00:05:44,160 16 bình phương, cộng với d lần 16, hoặc cộng 13 lần 16. 101 00:05:44,160 --> 00:05:47,410 Và đừng lo lắng nếu bạn vẫn chưa nhớ d đó là 13, hoặc bất cứ điều gì như thế, 102 00:05:47,410 --> 00:05:49,201 không có quá nhiều các chữ số thư 103 00:05:49,201 --> 00:05:52,820 và nó sẽ trở thành trực quan khá nhanh chóng. 104 00:05:52,820 --> 00:05:59,800 Vì vậy, một lần nữa đây là 10 lần 16 bình phương, cộng với 13 lần 16, cộng với 12 lần 1. 105 00:05:59,800 --> 00:06:03,640 Vì vậy, ADC 0x. 106 00:06:03,640 --> 00:06:07,750 >> Vì vậy, như tôi đã nói, mỗi nhóm 4 chữ số nhị phân 107 00:06:07,750 --> 00:06:10,000 tương ứng với một đơn chữ số thập lục phân, 108 00:06:10,000 --> 00:06:12,570 và do đó, nó thực sự thực sự dễ dàng để thay đổi qua lại 109 00:06:12,570 --> 00:06:14,690 giữa hex và nhị phân. 110 00:06:14,690 --> 00:06:18,310 Nếu bạn có chuỗi dài này chữ số nhị phân, tất cả các bạn cần làm 111 00:06:18,310 --> 00:06:21,320 được bắt đầu nhóm chúng ngay sang trái như nhóm 4. 112 00:06:21,320 --> 00:06:26,550 Và sau đó bạn có thể củng cố chúng thành các số thập lục phân, 113 00:06:26,550 --> 00:06:30,910 hạn chế nghiêm ngặt số lượng chữ số bạn có để xử lý tinh thần. 114 00:06:30,910 --> 00:06:33,680 Thay vì 32 0 và 1 của, như chúng ta sẽ thấy trong một giây, 115 00:06:33,680 --> 00:06:37,630 bạn có thể có thể làm cho nó xuống chỉ cần 8 chữ số thập lục phân, rất nhiều 116 00:06:37,630 --> 00:06:39,200 ngắn gọn hơn. 117 00:06:39,200 --> 00:06:43,500 >> Các bảng xếp hạng một vài slide sao sẽ giúp bạn để tìm ra bản đồ này, 118 00:06:43,500 --> 00:06:45,660 mặc dù, một lần nữa bạn sẽ ghi nhớ nó khá nhanh chóng. 119 00:06:45,660 --> 00:06:47,320 Chúng tôi sẽ đi qua một ví dụ ngay bây giờ. 120 00:06:47,320 --> 00:06:51,507 Vì vậy, nếu chúng ta có một số như thế này, số nhị phân thực sự lớn này, 121 00:06:51,507 --> 00:06:53,340 hoặc những gì dường như là một số nhị phân lớn. 122 00:06:53,340 --> 00:06:56,260 Và lý do tôi nói rằng, đó là chỉ so-- đó là một người khổng lồ, phải không? 123 00:06:56,260 --> 00:06:58,959 Có rất nhiều 0 và 1 của đó. 124 00:06:58,959 --> 00:07:01,000 Nhưng chúng ta có thể làm được không thực sự có một cảm giác gì 125 00:07:01,000 --> 00:07:02,870 độ lớn của con số này thực sự là. 126 00:07:02,870 --> 00:07:06,150 Chúng tôi không có bất kỳ ý tưởng gì nó sẽ tương ứng với một số thập phân. 127 00:07:06,150 --> 00:07:09,744 Và trên thực tế, chúng tôi thậm chí sẽ không nhìn thấy những gì nó tương ứng trong hệ thập phân ngay bây giờ. 128 00:07:09,744 --> 00:07:11,660 Chúng tôi có thể có thể thể hiện điều này theo một cách mà 129 00:07:11,660 --> 00:07:15,640 sẽ cung cấp cho chúng tôi một số thông tin về chỉ cần làm thế nào lớn số này là. 130 00:07:15,640 --> 00:07:17,270 >> Vì vậy, chúng ta hãy đi đến đó quá trình chuyển đổi. 131 00:07:17,270 --> 00:07:19,311 Điều đầu tiên chúng ta cần làm là chúng ta muốn nhóm 132 00:07:19,311 --> 00:07:23,050 các chữ số ra thành các nhóm 4, bắt đầu từ bên phải 133 00:07:23,050 --> 00:07:24,120 và làm việc bên trái. 134 00:07:24,120 --> 00:07:27,260 Có xảy ra được 32 chữ số ở đây, có nghĩa là chúng tôi có 135 00:07:27,260 --> 00:07:33,210 một break sạch đẹp của 8 nhóm 4. 136 00:07:33,210 --> 00:07:36,200 Hãy nhớ rằng mỗi nhóm 4 đây, duy nhất tương ứng 137 00:07:36,200 --> 00:07:37,760 đến một chữ số thập lục phân. 138 00:07:37,760 --> 00:07:42,080 Vì vậy, chúng tôi sẽ bắt đầu một lần nữa xây dựng của chúng tôi số lượng từ cánh phải, và làm việc để lại. 139 00:07:42,080 --> 00:07:44,890 Vâng năm 1101 là gì? 140 00:07:44,890 --> 00:07:49,220 Vâng, chúng tôi làm toán ra trong đầu của chúng tôi, chúng tôi có 1 trong những nơi Tám, một 1 141 00:07:49,220 --> 00:07:54,310 ở nơi bốn chân, một 0 trong twos nơi, và 1 ở nơi những người thân. 142 00:07:54,310 --> 00:07:58,820 Đó là 8 cộng với 4 cộng thêm 1, mà chúng ta sẽ biết là 13. 143 00:07:58,820 --> 00:08:02,400 Nhưng có lẽ chúng ta sẽ không viết ra 13, bởi vì chúng tôi đang làm việc với hệ thập lục phân. 144 00:08:02,400 --> 00:08:07,982 Chúng tôi cần phải chuyển đổi nó sang hệ thập lục phân tương đương với 13, đó là d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, đó cũng là một số 0 vào nơi Tám, một trong bốn chân 0 chỗ, 146 00:08:12,940 --> 00:08:15,190 1 trong những nơi twos, và 1 ở nơi những người thân. 147 00:08:15,190 --> 00:08:16,880 Đó là 3. 148 00:08:16,880 --> 00:08:20,180 Tôi có nghĩa là tiếp tục làm này một lần nữa, chúng tôi có ở đây 9. 149 00:08:20,180 --> 00:08:23,850 Và sau đó 11, nhưng đó là b, thu hồi. 150 00:08:23,850 --> 00:08:30,570 2, 10-- hoặc a-- 6 và 4. 151 00:08:30,570 --> 00:08:34,669 Và do đó chuỗi rất lớn 0 và 1 của đỉnh 152 00:08:34,669 --> 00:08:38,549 được thể hiện chính xác hơn trong hệ thập lục phân là 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> Vâng, OK, chúng tôi đã học được một mới kỹ năng mát mẻ, điểm là những gì? 155 00:08:45,870 --> 00:08:49,560 Chúng tôi có thể không sử dụng tất cả các thời gian, như chúng ta sẽ sớm thấy, 156 00:08:49,560 --> 00:08:52,370 chúng tôi sử dụng hệ thập lục phân khá rất nhiều như các lập trình viên. 157 00:08:52,370 --> 00:08:55,060 Không nhất thiết phải cho các Mục đích của toán học với nó, 158 00:08:55,060 --> 00:08:58,470 nhưng vì rất nhiều lần địa chỉ bộ nhớ trong hệ thống của chúng tôi 159 00:08:58,470 --> 00:09:00,440 được biểu diễn trong hệ thập lục phân. 160 00:09:00,440 --> 00:09:04,390 Đó là một cách thực sự súc tích để bày tỏ nếu không cồng kềnh, số nhị phân. 161 00:09:04,390 --> 00:09:06,440 Và như vậy, một lần nữa, bạn có thể not-- có lẽ bạn đang 162 00:09:06,440 --> 00:09:07,640 sẽ không làm bất kỳ môn toán với nó, bạn không 163 00:09:07,640 --> 00:09:09,848 sẽ là nhân số thập lục phân với nhau, 164 00:09:09,848 --> 00:09:11,770 hoặc làm bất cứ điều gì kỳ lạ như thế. 165 00:09:11,770 --> 00:09:16,120 Nhưng nó là một kỹ năng hữu ích để có vì vậy bạn có thể bày tỏ và hiểu 166 00:09:16,120 --> 00:09:23,290 bộ nhớ địa chỉ, và khác cách sử dụng dữ liệu trong C. 167 00:09:23,290 --> 00:09:26,240 >> Tôi Doug Lloyd, đây là CS50. 168 00:09:26,240 --> 00:09:28,028