موصى به, 2022

اختيار المحرر

الفرق بين نوع الصب وتحويل النوع

يحدث المصطلحان "type casting" و "type conversion" عندما تكون هناك حاجة لتحويل نوع بيانات واحد إلى آخر. عندما يكون النوعان متوافقتين مع بعضهما البعض ، فإن التحويل من نوع إلى آخر يتم تلقائيًا بواسطة المحول البرمجي. ومع ذلك ، فهناك فرق أساسي بين تحويل النوع ونوع الكتابة ، أي أن تحويل النوع يتم تلقائيًا "تلقائيًّا" بواسطة المحول البرمجي ، في حين يجب أن يتم "كتابة الصيغ" من قبل المبرمج. دعونا نناقش الفرق على حد سواء نوع الصب والتحويل مع مساعدة من الرسم البياني المقارنة.

رسم بياني للمقارنة:

أساس للمقارنةنوع الصبنوع التحويل
المعنىيتم تعيين نوع بيانات واحد إلى آخر من قبل المستخدم ، وذلك باستخدام مشغل الإرسال ثم يطلق عليه "Type Casting".ويسمى تحويل نوع بيانات إلى آخر تلقائيًا بواسطة المحول البرمجي "تحويل النوع".
مستعمليمكن أيضًا استخدام نوع الكتابة على نوعين من أنواع البيانات "غير المتوافقة".يمكن تنفيذ تحويل النوع فقط عندما يكون نوعان من البيانات "متوافقين".
المشغل أو العامللإدخال نوع بيانات إلى آخر ، مطلوب مشغل الصب '().لا المشغل المطلوبة.
حجم أنواع البياناتيمكن أن يكون نوع الوجهة أصغر من نوع المصدر.هنا يجب أن يكون نوع الوجهة أكبر من نوع المصدر.
نفذتيتم ذلك أثناء تصميم البرنامج.يتم ذلك بشكل صريح أثناء تجميع.
نوع التحويل
تضييق التحويل.توسيع التحويلات.
مثالكثافة العمليات
بايت ب ؛
...
...
ب = (بايت)
int a = 3؛
تعويم b
ب = أ. // value in b = 3.000.

تعريف نوع الصب

يمكن تعريف نوع الكتابة باسم ، صب نوع بيانات واحد إلى نوع بيانات آخر ، من قبل المبرمج ، في وقت تصميم البرنامج. Aa التحويل التلقائي لنوع بيانات واحد إلى آخر ، ليس من الممكن في كل وقت. قد يكون شرط "نوع الوجهة" أصغر من "نوع المصدر" ، لذا على المبرمج أن يلقي صراحةً نوع البيانات الأكبر إلى نوع بيانات أصغر باستخدام عامل الصب "()". ونظرًا لأن نوع البيانات الأكبر يتم تعديله إلى نوع البيانات الأصغر ، فإنه يطلق عليه أيضًا "تضييق التحويل".

إعلان:

 target_type = (target_type) variable / value // target type هو نوع تريد تحويل نوع المصدر إليه وهو دائمًا نوع الوجهة. 

دعونا نفهم ذلك مع مثال. أنت تريد تحويل نوع البيانات 'int' إلى 'byte' ، الآن ، لأن 'البايت' أصغر من 'int' ، لا يُسمح بتحويل النوع. هنا ، كان علينا تحويل "int" ضمنيًا إلى "بايت" باستخدام مشغّل الصب "()". وبما أن 'int' أكبر من 'byte' ، فسيتم تقليل حجم 'int' إلى نطاق int int.

 كثافة العمليات بايت ب ؛ ... ... b = (byte) a؛ 

عندما يتم تحويل 'float' إلى 'int' ، يتم اقتطاع حجم الطفو ، حيث أن 'int' لا تخزن القيمة الكسرية. إذا كان حجم نوع الوجهة صغيرًا جدًا بالنسبة لنوع المصدر ليتم احتواؤه ، فسيكون نوع المصدر هو نوع الوجهة "نطاق". يمكن أيضًا استخدام الصب عند توافق أنواع البيانات ، ومن الممارسات الجيدة استخدام صب النوع حيثما تكون هناك حاجة إلى تحويل النوع.

تعريف تحويل النوع

تحويل النوع هو التحويل التلقائي لنوع بيانات واحد إلى آخر عند اللزوم ، بشكل صريح من قبل المترجم. ولكن هناك شرطان يجب الوفاء بهما قبل تحويل النوع.

  • يجب أن يكون نوع المصدر والوجهة متوافقًا.
  • يجب أن يكون نوع الوجهة أكبر من نوع المصدر.

يجب أن يفي هذان الشرطان بتحويل النوع ، ويسمى هذا النوع من التحويل بـ "توسيع التحويلات" ، حيث يتم تحويل النوع الأصغر إلى نوع أكبر ، ويتم توسيع النوع. بالنسبة إلى هذا التحويل الواسع ، تكون الأنواع الرقمية مثل 'int' ، 'float' متوافقة مع بعضها البعض بينما تكون الأرقام الرقمية char و boolean أو char to boolean غير متوافقة أيضًا.

هذا المثال سيوفر رؤية أفضل لهذا

 int a = 3؛ تعويم b ب = أ. // value in b = 3.000. 

هنا ، يتم تحويل 'int' إلى 'float' وهو أكبر من 'int' ، لذلك يحدث نوع توسيع المصدر. هنا ، لا يلزم وجود مشغل إرسال كما يفعل المترجم بشكل صريح.

الاختلافات الرئيسية بين نوع الصب والتحويل

  1. والفرق الأساسي الذي يميز نوع الصب من تحويل النوع هو أن صب النوع هو تحويل من نوع لآخر ، يتم تنفيذه بواسطة المبرمج. من ناحية أخرى ، فإن تحويل النوع هو تحويل من نوع لآخر ، يتم تنفيذه بواسطة المحول البرمجي أثناء التحويل البرمجي.
  2. يمكن تطبيق نوع الكتابة على أنواع البيانات التي قد لا تكون متوافقة مع بعضها البعض ، ولكن يمكن تطبيق تحويل النوع فقط على أنواع البيانات التي تتوافق مع بعضها البعض.
  3. يتطلب تحويل نوع إلى آخر في صب النوع مشغِّل الصب "()" ، بينما لا يتطلب تحويل نوع بيانات واحد إلى آخر في تحويل النوع أي مشغل.
  4. أثناء تحويل نوع بيانات إلى آخر في نوع الكتابة ، يمكن أن يكون نوع الوجهة أكبر أو أصغر من نوع المصدر. من ناحية أخرى ، يجب أن يكون نوع الوجهة أكبر من نوع المصدر في تحويل النوع.
  5. يتم تحويل نوع واحد إلى نوع آخر أثناء التشفير في نمط الكتابة بينما يتم تحويل نوع واحد إلى آخر أثناء عملية التحويل النوعي بشكل صريح أثناء التحويل البرمجي.
  6. يطلق على نوع الكتابة تحويل التضييق لأن هنا يمكن أن يكون نوع الوجهة أصغر من نوع المصدر في حين أن نوع التحويل يُسمى اتساع التحويل لأنه هنا ، يجب أن يكون نوع الوجهة أكبر من نوع المصدر.

استنتاج:

يمكن استنتاج أن نوع التحويل ونوع الكتابة ، كلاهما يؤديان مهمة تحويل نوع بيانات واحد إلى آخر ولكنهما يختلفان من حيث أن صب النوع يتم بواسطة المبرمج ، باستخدام مشغل المصبوب "()" ويتم تحويل النوع من قبل مترجم ، وأنه لا يستخدم أي مشغل.

Top