[Powered by Google Translate] JORDAN JOZWIAK: نوع الصب، في أبسط المعنى، هو
طريقة لتغيير تفسير كمبيوتر لبعض البيانات من قبل
ضمنا أو صراحة تغيير نوع البيانات الخاصة به.
مثل تغيير عدد صحيح إلى عدد عشري، أو العكس بالعكس.
لفهم نوع الصب، نحن بحاجة إلى
تبدأ مع الأساسيات -
أنواع البيانات نفسها.
في لغات الكمبيوتر مثل C، وجميع المتغيرات يكون نوعا
من نوع البيانات التي تحدد كيفية الكمبيوتر، وبالمثل
المستخدم، يفسر هذا المتغير.
أنواع البيانات العددية مثل كثافة، تطفو طويلة جدا و
مزدوجة، لها خصائص كل فريدة خاصة بها وهي
تستخدم لتحديد قيم مختلفة تتراوح والدقة.
الصب نوع يتيح لنا اتخاذ عدد النقطة العائمة مثل
3.14 و الحصول على جزء عشري من قبل، و 3 في هذه الحالة،
من قبل الصب عليه إلى int.
دعونا نأخذ مثالا من اللغة الإنجليزية لفترة وجيزة
استعراض أنواع، وأن نرى كيف يمكن تغيير نوع الصب
الطريقة التي نفسر قطعة من البيانات.
للبيانات، دعونا نلقي الرموز هنا.
أود أن أشير فقط إلى تكوين هذه السطور بعناية كما
الرموز، ولكن كما شخص يعرف اللغة الإنجليزية،
تتعرف على الفور أنهم، في الواقع، والرسائل.
كنت فهمت ضمنا نوع البيانات.
تبحث في هذه السلسلة من الرسائل يمكن أن نرى اثنين
كلمات مختلفة، ولكل منها معنى خاص به.
هناك كان اسما، والرياح، كما في تهب الرياح خارج.
وهناك الفعل، والرياح، كما هو الحال في أحتاج إلى
الرياح المشاهدة التماثلية.
هذا هو مثال للاهتمام، لأننا يمكن أن نرى
كيف النوع الذي نعلق على البيانات المتوفرة لدينا، سواء إسم أو
الفعل، والتغيرات كيف يمكننا استخدام هذه البيانات -
كما الريح كلمة أو الرياح.
على الرغم من أن الكمبيوتر لا يهتمون النحو وأجزاء
الكلام الإنجليزية، نفس المبدأ ينطبق الأساسية.
وهذا هو، يمكن أن نغير تفسير دقيق
نفس البيانات المخزنة في الذاكرة من قبل الصب ببساطة إلى
نوع مختلف.
هنا أحجام الأنواع الأكثر شيوعا على بت-32
نظام التشغيل.
لدينا شار في 1 INT، وتطفو على بايت 4 بايت، طويل
طويل ومزدوج في 8 بايت.
لأن الباحث يستغرق 4 بايت، سوف يستغرق الأمر ما يصل 32 بت
عندما يتم تخزينه في الذاكرة على شكل سلسلة ثنائي
من الآحاد والأصفار و.
طالما لدينا متغير يبقى على نوع int، في
سوف تحويل الكمبيوتر دائما تلك الآحاد والأصفار من
ثنائي إلى الرقم الأصلي.
ومع ذلك، يمكن أن يلقي نظريا ال 32
بت إلى سلسلة من أنواع منطقية.
ومن ثم فإن الكمبيوتر لم تعد ترى عددا، ولكن
بدلا من ذلك مجموعة من الآحاد والأصفار و.
يمكننا أيضا محاولة لقراءة تلك البيانات في مختلف رقمية
اكتب، أو حتى سلسلة من أربعة أحرف.
عند التعامل مع الأرقام في الصب، ويجب النظر في كيفية
سوف تتأثر دقة القيمة الخاصة بك.
نضع في اعتبارنا أن دقة يمكن ان يبقى هو نفسه،
أو يمكنك أن تفقد الدقة، لكنك لا يمكن أبدا الحصول على الدقة.
دعنا نذهب من خلال ثلاث طرق للالأكثر شيوعا التي يمكنك
تفقد الدقة.
وسوف يلقي تعويم إلى int يسبب اقتطاع من كل شيء
بعد العلامة العشرية، لذلك كنت تركت
مع عدد صحيح.
إذا أخذنا X تعويم التي سوف يساوي 3.7، يمكننا أن يلقي
هذا المتغير x إلى int من خلال كتابة ببساطة الباحث في
أقواس.
كلما نستخدم هذا المصطلح هنا، سنقوم بفعالية
يتم استخدام قيمة 3 لأننا اقتطاع
كل شيء بعد الفاصلة العشرية.
يمكننا أيضا تحويل طويلة إلى int طويلة، والتي سوف
وبالمثل يؤدي إلى فقدان بت ذات الترتيب العالي.
A طويل يستغرق 8 بايت أو 64 بت في الذاكرة.
لذلك عندما يلقي علينا ذلك إلى int التي ليس لها إلا 4 بايت، أو 32
بت، ونحن أساسا من تقطيع جميع البتات التي
تمثل القيم العليا ثنائي.
هل يمكن أن يلقي أيضا مضاعفة لعدد عشري، والتي سوف تعطي
أنت أقرب من الممكن تعويم ضعف دون
التقريب بالضرورة.
مماثلة لفترة طويلة لدينا طويلا لتحويل كثافة العمليات، وفقدان في
الدقة لأن مزدوج يحتوي على المزيد من البيانات.
وهناك ضعف تسمح لك لتخزين 53 بت كبيرة،
تقريبا 16 رقما كبيرا.
في حين سوف تطفو تسمح لك لتخزين 24
بت كبيرة، ما يقرب من سبعة أرقام كبيرة.
في هذه الحالات الماضيين، قد يكون من المفيد أن نفكر في
اكتب الصب وتغيير حجم الصورة.
عندما تذهب من حجم كبير إلى حجم صغير، لا يمكنك مشاهدة
لأن الأشياء كما كنت فقدت البيانات بوضوح
في شكل بكسل.
يمكن أيضا أن يسبب نوع الصب المتاعب عندما كنا
يلقي رجات ليطفو.
منذ يطفو على جهاز 32-بت لديها سوى 24
بت كبيرة، فإنها يمكن أن تعبر بدقة القيم
أكثر من 2 إلى قوة 24، أو 16777217.
الآن دعونا نتحدث عن صب الصريحة والضمنية.
الصب هو واضح عندما نكتب نوع بين قوسين
قبل اسم المتغير.
وكمثال على ذلك، قبل كتبنا الباحث بين قوسين قبل لدينا
تطفو متغير x.
وبهذه الطريقة، نحصل على القيمة الصحيحة، في
اقتطاع قيمة 3.7 -
3.
الصب الضمني هو عندما تتغير تلقائيا مترجم
أنواع مشابهة لنوع السوبر، أو يؤدي نوعا آخر من
الصب دون الحاجة للمستخدم الكتابة
أي تعليمات برمجية إضافية.
على سبيل المثال، عندما نضيف 5 و 1.1، القيم لدينا بالفعل
أنواع المرتبطة بها.
ال 5 هو الباحث، في حين أن 1.1 هو عدد عشري.
من أجل إضافتها، الكمبيوتر يلقي 5 في عدد عشري،
والتي كانت نفس الشيء 5.0 في الكتابة
المركز الأول.
ولكن بهذه الطريقة نقول تعويم 5، أو 5.0، بالإضافة إلى ما سبق
عدد عشري، 1.1، ومن هناك يمكننا أن نضيف فعلا هذه
القيم والحصول على قيمة 6.1.
الصب ضمني يسمح لنا أيضا لتعيين متغيرات
أنواع مختلفة مع بعضها البعض.
يمكننا دائما تعيين نوع أقل دقة في أكثر
دقيقة واحدة.
على سبيل المثال، إذا كان لدينا مزدوجة X، Y والباحث -
ويمكن لهذه القيم أن لديها أي وضعناها لهم -
يمكننا القول x تساوي ذ.
لأن ضعف لديها اكثر من مجرد الباحث الدقة، لذلك نحن
لن تفقد أي معلومات.
من ناحية أخرى، فإنه لن يكون بالضرورة صحيحا القول
Y يساوي X، وذلك لأن ضعف قد يكون لها قيمة أكبر من
عدد صحيح.
وهذا يعني أن هذه صحيح لا تكون قادرة على اجراء جميع
المعلومات المخزنة في المزدوجة.
كما يستخدم الصب ضمنا في عوامل المقارنة مثل
أكبر من أو أقل من أو المشغل المساواة.
بهذه الطريقة نستطيع أن نقول إذا 5.1 هو أكبر من 5، ونحصل على
يؤدي صحيحا.
لأن 5 هو الباحث، ولكن سوف يلقي هذا الكاريكاتير إلى تعويم من أجل
يمكن مقارنة تعويم 5.1، نستطيع أن نقول 5.1
أكبر من 5.0.
وينطبق الشيء نفسه مع قائلا انه اذا يساوي 2،0 يساوي 2.
كنا أيضا الحصول صحيح، لأن الكمبيوتر سوف يلقي
عدد صحيح من 2 إلى تعويم ثم يقول يساوي 2،0 يساوي 2.0،
هذا صحيح.
لا ننسى أننا يمكن أن يلقي أيضا بين رجات وحرف،
أو قيم ASCII.
حرف تحتاج أيضا إلى خفض إلى ثنائي، وهذا هو السبب الذي
يمكن تحويل بسهولة بين حرف ولكل منها
ASCII القيم.
لمعرفة المزيد عن هذا، وتحقق من الفيديو لدينا في ASCII.
عندما تأخذ لحظة لنفكر في كيفية يتم تخزينها البيانات،
أن تبدأ في جعل الكثير من معانيها.
انها مجرد مثل الفرق بين الريح والرياح.
والبيانات هي نفسها، ولكن يمكن تغيير نوع الطريقة التي
تفسير ذلك.
اسمي الاردن Jozwiak، وهذا CS50.