سنناقش في هذا الموضوع تحويل نوع بيانات إلى نوع آخر في لغة البرمجة C++. تحويل النوع هو العملية التي تقوم بتحويل نوع البيانات المحدد مسبقًا لمتغير واحد إلى نوع بيانات مناسب. الفكرة الرئيسية وراء تحويل النوع هي تحويل متغيرين مختلفين من نوع البيانات إلى نوع بيانات واحد لحل التعبيرات الرياضية والمنطقية بسهولة دون فقدان أي بيانات.
على سبيل المثال، نقوم بإضافة رقمين، حيث يكون أحدهما من النوع int والآخر من النوع float؛ نحن بحاجة إلى تحويل أو طباعة المتغير int إلى عدد عشري لجعل كلا النوعين من البيانات عائمة لإضافتهما.
يمكن إجراء تحويل النوع بطريقتين في لغة C++، إحداهما هي تحويل النوع الضمني ، والثاني هو تحويل النوع الصريح . تتم هذه التحويلات بواسطة المترجم نفسه، ويسمى النوع الضمني أو تحويل النوع التلقائي. التحويل، الذي يتم بواسطة المستخدم أو يتطلب تدخلات المستخدم يسمى التحويل الصريح أو نوع تحديد المستخدم. دعونا نناقش تحويل النوع الضمني والصريح في C++.
تحويل النوع الضمني
تحويل النوع الضمني هو نوع التحويل الذي يتم إجراؤه تلقائيًا بواسطة المترجم دون أي جهد بشري. وهذا يعني أن التحويل الضمني يقوم تلقائيًا بتحويل نوع بيانات واحد إلى نوع آخر بناءً على بعض القواعد المحددة مسبقًا لمترجم C++. ومن ثم، فإنه يعرف أيضا باسم تحويل النوع التلقائي .
شرح استقلالية البيانات
على سبيل المثال:
int x = 20; short int y = 5; int z = x + y;
في المثال أعلاه، يوجد متغيرين مختلفين لنوع البيانات، x وy، حيث x هو نوع int، وy هو نوع بيانات int قصير. والمتغير الناتج z هو أيضًا نوع عدد صحيح يخزن متغيرات x وy. لكن مترجم C++ يقوم تلقائيًا بتحويل قيمة نوع البيانات ذات الرتبة الأدنى (short int) إلى نوع أعلى (int) قبل الحصول على مجموع رقمين. وبالتالي، فإنه يتجنب فقدان البيانات أو تجاوز السعة أو فقدان الإشارة في تحويل النوع الضمني لـ C++.
مخطوطة لكل منهما
ترتيب التلبيس في التحويل الضمني
فيما يلي الترتيب الصحيح لأنواع البيانات من الرتبة الأدنى إلى الرتبة الأعلى:
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
برنامج للتحويل إلى نوع عائم باستخدام تحويل النوع الضمني
لنقم بإنشاء برنامج لتحويل أنواع البيانات الأصغر مرتبة إلى أنواع أعلى باستخدام تحويل النوع الضمني.
Program1.cpp
#include using namespace std; int main () { // assign the integer value int num1 = 25; // declare a float variable float num2; // convert int value into float variable using implicit conversion num2 = num1; cout << ' The value of num1 is: ' << num1 << endl; cout << ' The value of num2 is: ' << num2 << endl; return 0; }
انتاج |
The value of num1 is: 25 The value of num2 is: 25
برنامج لتحويل نوع البيانات المزدوج إلى نوع int باستخدام تحويل النوع الضمني
لنقم بإنشاء برنامج لتحويل نوع البيانات الأعلى إلى نوع أقل باستخدام تحويل النوع الضمني.
Program2.cpp
#include using namespace std; int main() { int num; // declare int type variable double num2 = 15.25; // declare and assign the double variable // use implicit type conversion to assign a double value to int variable num = num2; cout << ' The value of the int variable is: ' << num << endl; cout << ' The value of the double variable is: ' << num2 << endl; return 0; }
انتاج |
The value of the int variable is: 15 The value of the double variable is: 15.25
في البرنامج أعلاه، قمنا بتعريف num كنوع عدد صحيح وnum2 كمتغير مزدوج لنوع البيانات ثم قمنا بتعيين num2 كـ 15.25. بعد ذلك، نقوم بتعيين قيمة num2 للمتغير num باستخدام عامل التعيين. لذلك، يقوم مترجم C++ تلقائيًا بتحويل قيمة البيانات المزدوجة إلى نوع عدد صحيح قبل تعيينها إلى متغير num وطباعة القيمة المقتطعة كـ 15.
خوارزميات فرز الإدراج
تحويل النوع الصريح
التحويلات التي تتطلب تدخل المستخدم لتغيير نوع البيانات من متغير إلى آخر، يسمى تحويل النوع الصريح . بمعنى آخر، يسمح التحويل الصريح للمبرمج بتغيير نوع البيانات أو نسخه يدويًا من متغير إلى نوع آخر. ومن ثم، فإنه يعرف أيضا باسم typecasting. بشكل عام، نفرض تحويل النوع الصريح لتحويل البيانات من نوع إلى آخر لأنه لا يتبع قاعدة التحويل الضمنية.
ينقسم تحويل النوع الصريح إلى طريقتين:
- تحويل صريح باستخدام عامل الإرسال
- تحويل صريح باستخدام عامل التعيين
برنامج لتحويل القيمة العائمة إلى نوع int باستخدام عامل الإرسال
عامل البث: في لغة C++، عامل الإرسال هو عامل أحادي يقوم بتحويل نوع واحد بالقوة إلى نوع آخر.
لنفكر في مثال لتحويل نوع البيانات العائمة إلى نوع int باستخدام عامل التحويل للتحويل الصريح بلغة C++.
Program3.cpp
#include using namespace std; int main () { float f2 = 6.7; // use cast operator to convert data from one type to another int x = static_cast (f2); cout << ' The value of x is: ' << x; return 0; }
انتاج |
تحويل مجموعة البايت إلى سلسلة
The value of x is: 6
برنامج لتحويل نوع بيانات إلى نوع آخر باستخدام عامل المهمة
لنفكر في مثال لتحويل نوع البيانات من متغير إلى آخر باستخدام عامل التعيين في برنامج C++.
Program4.cpp
#include using namespace std; int main () { // declare a float variable float num2; // initialize an int variable int num1 = 25; // convert data type from int to float num2 = (float) num1; cout << ' The value of int num1 is: ' << num1 << endl; cout << ' The value of float num2 is: ' << num2 << endl; return 0; }
انتاج |
The value of int num1 is: 25 The value of float num2 is: 25.0