1 00:00:07,632 --> 00:00:10,270 [Powered by Google Translate] JORDAN JOZWIAK: نوع الصب، في أبسط المعنى، هو 2 00:00:10,270 --> 00:00:13,300 طريقة لتغيير تفسير كمبيوتر لبعض البيانات من قبل 3 00:00:13,300 --> 00:00:16,560 ضمنا أو صراحة تغيير نوع البيانات الخاصة به. 4 00:00:16,560 --> 00:00:19,940 مثل تغيير عدد صحيح إلى عدد عشري، أو العكس بالعكس. 5 00:00:19,940 --> 00:00:21,550 لفهم نوع الصب، نحن بحاجة إلى 6 00:00:21,550 --> 00:00:22,680 تبدأ مع الأساسيات - 7 00:00:22,680 --> 00:00:24,140 أنواع البيانات نفسها. 8 00:00:24,140 --> 00:00:26,960 في لغات الكمبيوتر مثل C، وجميع المتغيرات يكون نوعا 9 00:00:26,960 --> 00:00:29,690 من نوع البيانات التي تحدد كيفية الكمبيوتر، وبالمثل 10 00:00:29,690 --> 00:00:32,140 المستخدم، يفسر هذا المتغير. 11 00:00:32,140 --> 00:00:35,160 أنواع البيانات العددية مثل كثافة، تطفو طويلة جدا و 12 00:00:35,160 --> 00:00:38,110 مزدوجة، لها خصائص كل فريدة خاصة بها وهي 13 00:00:38,110 --> 00:00:41,370 تستخدم لتحديد قيم مختلفة تتراوح والدقة. 14 00:00:41,370 --> 00:00:44,800 الصب نوع يتيح لنا اتخاذ عدد النقطة العائمة مثل 15 00:00:44,800 --> 00:00:49,170 3.14 و الحصول على جزء عشري من قبل، و 3 في هذه الحالة، 16 00:00:49,170 --> 00:00:51,590 من قبل الصب عليه إلى int. 17 00:00:51,590 --> 00:00:53,900 دعونا نأخذ مثالا من اللغة الإنجليزية لفترة وجيزة 18 00:00:53,900 --> 00:00:56,910 استعراض أنواع، وأن نرى كيف يمكن تغيير نوع الصب 19 00:00:56,910 --> 00:00:59,380 الطريقة التي نفسر قطعة من البيانات. 20 00:00:59,380 --> 00:01:05,269 للبيانات، دعونا نلقي الرموز هنا. 21 00:01:05,269 --> 00:01:07,570 أود أن أشير فقط إلى تكوين هذه السطور بعناية كما 22 00:01:07,570 --> 00:01:10,100 الرموز، ولكن كما شخص يعرف اللغة الإنجليزية، 23 00:01:10,100 --> 00:01:12,750 تتعرف على الفور أنهم، في الواقع، والرسائل. 24 00:01:12,750 --> 00:01:15,580 كنت فهمت ضمنا نوع البيانات. 25 00:01:15,580 --> 00:01:17,620 تبحث في هذه السلسلة من الرسائل يمكن أن نرى اثنين 26 00:01:17,620 --> 00:01:20,140 كلمات مختلفة، ولكل منها معنى خاص به. 27 00:01:20,140 --> 00:01:25,530 هناك كان اسما، والرياح، كما في تهب الرياح خارج. 28 00:01:25,530 --> 00:01:28,280 وهناك الفعل، والرياح، كما هو الحال في أحتاج إلى 29 00:01:28,280 --> 00:01:31,410 الرياح المشاهدة التماثلية. 30 00:01:31,410 --> 00:01:33,420 هذا هو مثال للاهتمام، لأننا يمكن أن نرى 31 00:01:33,420 --> 00:01:36,270 كيف النوع الذي نعلق على البيانات المتوفرة لدينا، سواء إسم أو 32 00:01:36,270 --> 00:01:39,080 الفعل، والتغيرات كيف يمكننا استخدام هذه البيانات - 33 00:01:39,080 --> 00:01:41,730 كما الريح كلمة أو الرياح. 34 00:01:41,730 --> 00:01:44,100 على الرغم من أن الكمبيوتر لا يهتمون النحو وأجزاء 35 00:01:44,100 --> 00:01:47,750 الكلام الإنجليزية، نفس المبدأ ينطبق الأساسية. 36 00:01:47,750 --> 00:01:50,290 وهذا هو، يمكن أن نغير تفسير دقيق 37 00:01:50,290 --> 00:01:53,140 نفس البيانات المخزنة في الذاكرة من قبل الصب ببساطة إلى 38 00:01:53,140 --> 00:01:54,576 نوع مختلف. 39 00:01:54,576 --> 00:01:57,250 هنا أحجام الأنواع الأكثر شيوعا على بت-32 40 00:01:57,250 --> 00:01:58,340 نظام التشغيل. 41 00:01:58,340 --> 00:02:02,070 لدينا شار في 1 INT، وتطفو على بايت 4 بايت، طويل 42 00:02:02,070 --> 00:02:04,390 طويل ومزدوج في 8 بايت. 43 00:02:04,390 --> 00:02:07,670 لأن الباحث يستغرق 4 بايت، سوف يستغرق الأمر ما يصل 32 بت 44 00:02:07,670 --> 00:02:10,060 عندما يتم تخزينه في الذاكرة على شكل سلسلة ثنائي 45 00:02:10,060 --> 00:02:11,500 من الآحاد والأصفار و. 46 00:02:11,500 --> 00:02:14,020 طالما لدينا متغير يبقى على نوع int، في 47 00:02:14,020 --> 00:02:16,740 سوف تحويل الكمبيوتر دائما تلك الآحاد والأصفار من 48 00:02:16,740 --> 00:02:19,120 ثنائي إلى الرقم الأصلي. 49 00:02:19,120 --> 00:02:21,270 ومع ذلك، يمكن أن يلقي نظريا ال 32 50 00:02:21,270 --> 00:02:23,510 بت إلى سلسلة من أنواع منطقية. 51 00:02:23,510 --> 00:02:26,090 ومن ثم فإن الكمبيوتر لم تعد ترى عددا، ولكن 52 00:02:26,090 --> 00:02:28,810 بدلا من ذلك مجموعة من الآحاد والأصفار و. 53 00:02:28,810 --> 00:02:31,570 يمكننا أيضا محاولة لقراءة تلك البيانات في مختلف رقمية 54 00:02:31,570 --> 00:02:34,660 اكتب، أو حتى سلسلة من أربعة أحرف. 55 00:02:34,660 --> 00:02:37,820 عند التعامل مع الأرقام في الصب، ويجب النظر في كيفية 56 00:02:37,820 --> 00:02:40,470 سوف تتأثر دقة القيمة الخاصة بك. 57 00:02:40,470 --> 00:02:43,240 نضع في اعتبارنا أن دقة يمكن ان يبقى هو نفسه، 58 00:02:43,240 --> 00:02:47,150 أو يمكنك أن تفقد الدقة، لكنك لا يمكن أبدا الحصول على الدقة. 59 00:02:47,150 --> 00:02:49,060 دعنا نذهب من خلال ثلاث طرق للالأكثر شيوعا التي يمكنك 60 00:02:49,060 --> 00:02:50,400 تفقد الدقة. 61 00:02:50,400 --> 00:02:53,060 وسوف يلقي تعويم إلى int يسبب اقتطاع من كل شيء 62 00:02:53,060 --> 00:02:54,900 بعد العلامة العشرية، لذلك كنت تركت 63 00:02:54,900 --> 00:02:55,950 مع عدد صحيح. 64 00:02:55,950 --> 00:03:02,000 إذا أخذنا X تعويم التي سوف يساوي 3.7، يمكننا أن يلقي 65 00:03:02,000 --> 00:03:05,580 هذا المتغير x إلى int من خلال كتابة ببساطة الباحث في 66 00:03:05,580 --> 00:03:07,050 أقواس. 67 00:03:07,050 --> 00:03:10,010 كلما نستخدم هذا المصطلح هنا، سنقوم بفعالية 68 00:03:10,010 --> 00:03:12,810 يتم استخدام قيمة 3 لأننا اقتطاع 69 00:03:12,810 --> 00:03:14,880 كل شيء بعد الفاصلة العشرية. 70 00:03:14,880 --> 00:03:17,210 يمكننا أيضا تحويل طويلة إلى int طويلة، والتي سوف 71 00:03:17,210 --> 00:03:20,760 وبالمثل يؤدي إلى فقدان بت ذات الترتيب العالي. 72 00:03:20,760 --> 00:03:23,910 A طويل يستغرق 8 بايت أو 64 بت في الذاكرة. 73 00:03:23,910 --> 00:03:27,050 لذلك عندما يلقي علينا ذلك إلى int التي ليس لها إلا 4 بايت، أو 32 74 00:03:27,050 --> 00:03:29,820 بت، ونحن أساسا من تقطيع جميع البتات التي 75 00:03:29,820 --> 00:03:32,420 تمثل القيم العليا ثنائي. 76 00:03:32,420 --> 00:03:34,690 هل يمكن أن يلقي أيضا مضاعفة لعدد عشري، والتي سوف تعطي 77 00:03:34,690 --> 00:03:37,340 أنت أقرب من الممكن تعويم ضعف دون 78 00:03:37,340 --> 00:03:39,100 التقريب بالضرورة. 79 00:03:39,100 --> 00:03:41,840 مماثلة لفترة طويلة لدينا طويلا لتحويل كثافة العمليات، وفقدان في 80 00:03:41,840 --> 00:03:44,890 الدقة لأن مزدوج يحتوي على المزيد من البيانات. 81 00:03:44,890 --> 00:03:47,910 وهناك ضعف تسمح لك لتخزين 53 بت كبيرة، 82 00:03:47,910 --> 00:03:50,650 تقريبا 16 رقما كبيرا. 83 00:03:50,650 --> 00:03:53,050 في حين سوف تطفو تسمح لك لتخزين 24 84 00:03:53,050 --> 00:03:56,235 بت كبيرة، ما يقرب من سبعة أرقام كبيرة. 85 00:03:56,235 --> 00:03:58,700 في هذه الحالات الماضيين، قد يكون من المفيد أن نفكر في 86 00:03:58,700 --> 00:04:01,200 اكتب الصب وتغيير حجم الصورة. 87 00:04:01,200 --> 00:04:03,860 عندما تذهب من حجم كبير إلى حجم صغير، لا يمكنك مشاهدة 88 00:04:03,860 --> 00:04:05,600 لأن الأشياء كما كنت فقدت البيانات بوضوح 89 00:04:05,600 --> 00:04:07,530 في شكل بكسل. 90 00:04:07,530 --> 00:04:09,270 يمكن أيضا أن يسبب نوع الصب المتاعب عندما كنا 91 00:04:09,270 --> 00:04:11,050 يلقي رجات ليطفو. 92 00:04:11,050 --> 00:04:13,920 منذ يطفو على جهاز 32-بت لديها سوى 24 93 00:04:13,920 --> 00:04:16,959 بت كبيرة، فإنها يمكن أن تعبر بدقة القيم 94 00:04:16,959 --> 00:04:22,750 أكثر من 2 إلى قوة 24، أو 16777217. 95 00:04:22,750 --> 00:04:25,540 الآن دعونا نتحدث عن صب الصريحة والضمنية. 96 00:04:25,540 --> 00:04:28,000 الصب هو واضح عندما نكتب نوع بين قوسين 97 00:04:28,000 --> 00:04:29,430 قبل اسم المتغير. 98 00:04:29,430 --> 00:04:33,100 وكمثال على ذلك، قبل كتبنا الباحث بين قوسين قبل لدينا 99 00:04:33,100 --> 00:04:35,640 تطفو متغير x. 100 00:04:35,640 --> 00:04:37,200 وبهذه الطريقة، نحصل على القيمة الصحيحة، في 101 00:04:37,200 --> 00:04:38,593 اقتطاع قيمة 3.7 - 102 00:04:38,593 --> 00:04:40,370 3. 103 00:04:40,370 --> 00:04:42,970 الصب الضمني هو عندما تتغير تلقائيا مترجم 104 00:04:42,970 --> 00:04:46,340 أنواع مشابهة لنوع السوبر، أو يؤدي نوعا آخر من 105 00:04:46,340 --> 00:04:48,310 الصب دون الحاجة للمستخدم الكتابة 106 00:04:48,310 --> 00:04:49,720 أي تعليمات برمجية إضافية. 107 00:04:49,720 --> 00:04:53,550 على سبيل المثال، عندما نضيف 5 و 1.1، القيم لدينا بالفعل 108 00:04:53,550 --> 00:04:55,680 أنواع المرتبطة بها. 109 00:04:55,680 --> 00:04:59,480 ال 5 هو الباحث، في حين أن 1.1 هو عدد عشري. 110 00:04:59,480 --> 00:05:02,390 من أجل إضافتها، الكمبيوتر يلقي 5 في عدد عشري، 111 00:05:02,390 --> 00:05:04,530 والتي كانت نفس الشيء 5.0 في الكتابة 112 00:05:04,530 --> 00:05:06,476 المركز الأول. 113 00:05:06,476 --> 00:05:13,210 ولكن بهذه الطريقة نقول تعويم 5، أو 5.0، بالإضافة إلى ما سبق 114 00:05:13,210 --> 00:05:16,960 عدد عشري، 1.1، ومن هناك يمكننا أن نضيف فعلا هذه 115 00:05:16,960 --> 00:05:18,640 القيم والحصول على قيمة 6.1. 116 00:05:21,170 --> 00:05:23,500 الصب ضمني يسمح لنا أيضا لتعيين متغيرات 117 00:05:23,500 --> 00:05:25,590 أنواع مختلفة مع بعضها البعض. 118 00:05:25,590 --> 00:05:28,110 يمكننا دائما تعيين نوع أقل دقة في أكثر 119 00:05:28,110 --> 00:05:29,250 دقيقة واحدة. 120 00:05:29,250 --> 00:05:37,060 على سبيل المثال، إذا كان لدينا مزدوجة X، Y والباحث - 121 00:05:37,060 --> 00:05:40,120 ويمكن لهذه القيم أن لديها أي وضعناها لهم - 122 00:05:40,120 --> 00:05:43,560 يمكننا القول x تساوي ذ. 123 00:05:43,560 --> 00:05:46,340 لأن ضعف لديها اكثر من مجرد الباحث الدقة، لذلك نحن 124 00:05:46,340 --> 00:05:48,380 لن تفقد أي معلومات. 125 00:05:48,380 --> 00:05:50,420 من ناحية أخرى، فإنه لن يكون بالضرورة صحيحا القول 126 00:05:50,420 --> 00:05:54,060 Y يساوي X، وذلك لأن ضعف قد يكون لها قيمة أكبر من 127 00:05:54,060 --> 00:05:55,220 عدد صحيح. 128 00:05:55,220 --> 00:05:57,420 وهذا يعني أن هذه صحيح لا تكون قادرة على اجراء جميع 129 00:05:57,420 --> 00:05:59,560 المعلومات المخزنة في المزدوجة. 130 00:05:59,560 --> 00:06:02,610 كما يستخدم الصب ضمنا في عوامل المقارنة مثل 131 00:06:02,610 --> 00:06:06,410 أكبر من أو أقل من أو المشغل المساواة. 132 00:06:06,410 --> 00:06:13,050 بهذه الطريقة نستطيع أن نقول إذا 5.1 هو أكبر من 5، ونحصل على 133 00:06:13,050 --> 00:06:14,750 يؤدي صحيحا. 134 00:06:14,750 --> 00:06:18,470 لأن 5 هو الباحث، ولكن سوف يلقي هذا الكاريكاتير إلى تعويم من أجل 135 00:06:18,470 --> 00:06:22,090 يمكن مقارنة تعويم 5.1، نستطيع أن نقول 5.1 136 00:06:22,090 --> 00:06:24,550 أكبر من 5.0. 137 00:06:24,550 --> 00:06:31,320 وينطبق الشيء نفسه مع قائلا انه اذا يساوي 2،0 يساوي 2. 138 00:06:31,320 --> 00:06:34,190 كنا أيضا الحصول صحيح، لأن الكمبيوتر سوف يلقي 139 00:06:34,190 --> 00:06:39,750 عدد صحيح من 2 إلى تعويم ثم يقول يساوي 2،0 يساوي 2.0، 140 00:06:39,750 --> 00:06:41,660 هذا صحيح. 141 00:06:41,660 --> 00:06:44,180 لا ننسى أننا يمكن أن يلقي أيضا بين رجات وحرف، 142 00:06:44,180 --> 00:06:46,350 أو قيم ASCII. 143 00:06:46,350 --> 00:06:49,690 حرف تحتاج أيضا إلى خفض إلى ثنائي، وهذا هو السبب الذي 144 00:06:49,690 --> 00:06:51,920 يمكن تحويل بسهولة بين حرف ولكل منها 145 00:06:51,920 --> 00:06:53,260 ASCII القيم. 146 00:06:53,260 --> 00:06:56,180 لمعرفة المزيد عن هذا، وتحقق من الفيديو لدينا في ASCII. 147 00:06:56,180 --> 00:06:58,080 عندما تأخذ لحظة لنفكر في كيفية يتم تخزينها البيانات، 148 00:06:58,080 --> 00:06:59,990 أن تبدأ في جعل الكثير من معانيها. 149 00:06:59,990 --> 00:07:02,790 انها مجرد مثل الفرق بين الريح والرياح. 150 00:07:02,790 --> 00:07:05,490 والبيانات هي نفسها، ولكن يمكن تغيير نوع الطريقة التي 151 00:07:05,490 --> 00:07:06,720 تفسير ذلك. 152 00:07:06,720 --> 00:07:10,430 اسمي الاردن Jozwiak، وهذا CS50.