English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في برمجة C++،ميزات النوعللتحويلنوع البياناتالمعنى.
يُسمح في C++ باستخدام char،int و double يوضع ميزة التوضيح قبل نوع البيانات. تُستخدم ميزات التوضيح لتغيير معنى النوع الأساسي، وبالتالي تكون أكثر مرونة لمتطلبات متنوعة
فيما يلي قائمة بـ ميزات النوع:
signed
unsigned
long
short
محدد signed،unsigned،long و short يمكن تطبيقها على الأعداد الكاملةsigned و unsigned يمكن تطبيقها على الأعداد الصغيرةlong يمكن تطبيقها على الأعداد الثنائية
محدد signed و unsigned يمكن أن تكون long أو short السابق لميزات التوضيح.unsigned long int.
يُسمح في C++ باستخدام الرموز القصيرة لتحديدعدد قصير غير مواقعأوعدد طويل غير مواقعيمكنك عدم كتابة int، فقط كلمة unsigned short أو unsigned long،int هو مدمج. على سبيل المثال، الكلمتان التاليتان تُعتبر كلاهما متغيرات غير مواقع.
unsigned x; unsigned int y;
لفهم الفرق بين ميزات التوضيح للأعداد الصحيحة والأعداد غير الصحيحة في C++، لنقوم بتشغيل هذا البرنامج القصير التالي:
#include <iostream> using namespace std; /* * هذا البرنامج يوضح الفرق بين الأعداد الصحيحة والأعداد غير الصحيحة */ int main() { short int i; // عدد قصير مواقع short unsigned int j; // عدد قصير غير مواقع j = 50000; i = j; cout << i << " " << j; return 0; }
عند تشغيل البرنامج المذكور أعلاه، سيتم إنتاج النتيجة التالية:
-15536 50000
في النتيجة السابقة، نمط البتات للعدد القصير غير الموقع 50,000 يُفسر كعدد قصير مواقع
هذه قائمة بوصف ميزات النوع:
نوع البيانات | الحجم | المعنى |
---|---|---|
signed int | 4 بايت | للعدد (يساوي int) |
unsigned int | 4 بايت | يمكنه تخزين فقط الأعداد غير السلبية |
short | 2 بايت | للعدد الصغير (مجال-32768 إلى 32767للفونات (نطاق |
long | على الأقل 4 بايت | للعدد الكبير (يساوي long int) |
unsigned long | 4 بايت | للعدد الكبير أو 0 (يساوي unsigned long int) |
long long | unsigned long long | 用于非常大的整数(等于long long int)。 |
للفونات الكبيرة جداً من الأعداد (يساوي long long int). | unsigned long long | 8 بايت |
للفونات الكبيرة جداً من الأعداد الإيجابية أو الصفر (يساوي unsigned long long int) | long double | 8 بايت |
للفونات الكبيرة من النقاط العشرية | unsigned char | signed charمن -127 إلى 127للفونات (نطاق |
للفونات (تضمن نطاق | unsigned char | 1 بايتمن 0 إلى 255للفونات (نطاق |
نوع مدير shortيمكننا استخدام مدير shortعدد صغير
على سبيل المثال،
،بعدة نطاقات من -32,767 إلى +32,767). // عدد صغير
short a = 12345;
ملاحظة: في هذا السياق، a هو متغير short integer.
نوع مدير longمدير longإذا كان لدينا عدد كبير،
// عدد كبير long b = 123456;
ملاحظة: long يساوي long int.
يمكن استخدام مدير long مع متغيرات double.
// عدد كبير من النقاط العشرية long double c = 0.333333333333333333L;
ملاحظة:لتمثيل long double، نستخدم بعد L. إذا لم نستخدم الرقم بعد L، يتم تحويل double إلى هذا القيمة long double (قد يؤدي إلى فقدان البيانات).
يمكن تكرار long مرتين لإنشاء نوع long long. هذا النوع يستخدم لأعداد أكبر من long. يمكن استخدام مدير long long فقط مع int.
على سبيل المثال،
// long long int long long num = 12345678;
المغيرات الموقعة (signed) يمكنها احتواءإيجابيعددوسالبعدد، بما في ذلكصفر،على سبيل المثال،
// قيمة عدد إيجابي signed int x = 23; // قيمة عدد سالب signed int y = -13; // عدد صفر signed int z = 0;
هنا،
x يحملعدد إيجابيعدد
y يحملعدد سالبعدد
z يحملصفرعدد
مغير غير معكوسunsigned يمكنه استيعاب الأعداد غير السلبية. على سبيل المثال،
// عدد إيجابي unsigned int x = 2; unsigned int y = 0;
هنا،
x يحمل عدد إيجابي
y يحمل صفر
عادة، يمكن لـ int تخزين نطاق من من -2,147,483,648 إلى 2,147,483,647 القيم. بينما يمكن لـ unsigned int تخزين نطاق من من 0 إلى 4,294,967,295 القيم.
يوجد في C ++ ثلاثة أنواع مختلفة من char: char،signed char و unsigned char. في الواقع، هناك نوعان فقط: signed char و unsigned char.
هذا لأن، حتى لو لم يكن char متطابقًا مع signed char أو unsigned char في C ++ القياسية، سيتخذ محول البرمجيات قرارًا بناءً على تفضيلاته الخاصة حول كيفية تعريف char كـ signed char أو unsigned char.
ملاحظة:عندما نستخدم char بدلاً من signed char أو unsigned char، يُسمى هذا النوعplain char (الأحرف العادية).
ربما لاحظت، يمكن لـ signed char تخزين الأرقام الإيجابية والسلبية، بينما يمكن لـ unsigned char تخزين الأرقام الإيجابية فقط (بما في ذلك0)
يضمن signed char نطاق أرقام يمكن تخزينها هومن -127 إلى 127، بينما نطاق unsigned char هومن 0 إلى 255.
// الأحرف العادية char plain_1 = 65; char plain_2 = 0; // الأحرف العادية التي تحتوي على قيمة سالبة // قد يؤدي إلى مشاكل في بعض محولات البرمجيات char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
هنا،
يملك plain_1 قيمة إيجابية
يملك plain_2 قيمة صفرية
يملك sin_1 قيمة إيجابية
يملك sin_2 قيمة صفرية
يملك sin_3 قيمة سالبة
يملك unsin_1 قيمة سالبة
يملك unsin_2 قيمة صفرية
لا تستخدم الأحرف العادية للقيام بعمليات حسابية رقمية؛ استخدم signed char أو unsigned char بدلاً من ذلك. يجب استخدام الأحرف النقية فقط لتحديد قيم الأحرف.
محدد النوع يقدم معلومات إضافية عن المتغير.
محدد النوع يقدم معلومات إضافية عن المتغير. | المعنى |
---|---|
const | const لا يمكن تعديل أو تغيير كائنات النوع هذا أثناء تنفيذ البرنامج. |
volatile | محدد volatile يخبر معالج البرمجة أن لا يتم تحسين متغيرات volatile المعلن عنها، مما يسمح للبرنامج بقراءة المتغير مباشرة من الذاكرة. يفضل معالج البرمجة متغيرات العادية ويضع قيمة المتغير في محول لتسريع عملية القراءة والكتابة. |
restrict | من restrict المرجع المزين هو الطريقة الوحيدة لاستدعاء الجسم الذي يشير إليه. فقط قام C99 بإضافة نوع جديد من محدديات النوع restrict. |