عوامل التشغيل الحسابية في (Visual Basic)

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

العمليات الحسابية

يمكنك إضافة قيمتين في تعبير مع عامل + (Visual Basic)، أو طرحه من آخر مع - عامل التشغيل (Visual Basic)، كما يوضح المثال التالي.

Dim x As Integer
x = 67 + 34
x = 32 - 12

علامة السالب يستخدم أيضاً - عامل التشغيل (Visual Basic)، ولكن مع معامل واحد فقط كما في يوضح المثال التالي.

Dim x As Integer = 65
Dim y As Integer
y = -x

يستخدم الضرب والقسمة*عامل التشغيل (Visual Basic) و / عامل التشغيل (Visual Basic)، على الترتيب، كما يوضح المثال التالي.

Dim y As Double
y = 45 * 55.23
y = 32 / 23

تستخدم العلامة الأسيةعامل التشغيل ^ (Visual Basic)، كما يوضح المثال التالي.

Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).

قسمة عدد صحيح يتم تنفيذها باستخدام عامل \ (Visual Basic). قسمة عدد صحيح يرجع القسمة ، أي، عدد صحيح يمثل عدد مرات المقسوم عليه يمكن تقسيم إلى المقسوم دون اعتبار أي الباقي. عامل القسمة و المقسوم يجب أن يكونا للأنواع المتكاملة (SByte, Byte, Short, UShort, Integer, UInteger, Long، و ULong) لعامل التشغيل هذا. كافة الأنواع أخرى يجب تحويلها إلى نوع صحيح أولاً. يوضح المثال التالي قسمة عدد صحيح.

Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.

يتم تنفيذ معامل حساب التحويل باستخدام عامل التشغيل باقي القسمة في (Visual Basic). هذا العامل يرجع الباقي بعد قسمة المقسوم على المقسوم عليه عدد مرات العدد الصحيح. إذا كان كلاهما المقسوم عليه و المقسوم لأنواع أعداد صحيحة، القيمة التي تم إرجاعها هي أعداد صحيحة. إذا كان المقسوم عليه و المقسوم فاصلة عائمة الأنواع، القيمة التي تم إرجاعهاهي فاصلة عائمة. يوضح المثال التالي هذا السلوك.

Dim x As Integer = 100
Dim y As Integer = 6
Dim z As Integer
z = x Mod y
' The preceding statement sets z to 4.
Dim a As Double = 100.3
Dim b As Double = 4.13
Dim c As Double
c = a Mod b
' The preceding statement sets c to 1.18.

محاولة القسمة بواسطة صفر

القسمة على صفر ينتج نتائج مختلفة استناداً إلى أنواع بيانات المضمنة. في تقسيمات الأعداد الصحيحة (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong) ، .NET Framework يطرح استثناء DivideByZeroException ‏‏ . في عمليات القسمة على نوع بيانات Decimal أو Single .NET Framework يطرح أيضاً استثناء DivideByZeroException ‏‏ .

في الفاصلة العائمة التقسيمات تشتمل على نوع بيانات Double لا استثناء يطرح ويكون الناتج عضو فئة يمّثل NaN, PositiveInfinity، أو NegativeInfinity، استناداً إلى المقسوم. يلخص جدول التالي نتائج مختلفة لمحاولة تقسيم قيمة Double على صفر.

نوع بيانات المقسوم

نوع بيانات القاسم

قيمة المقسوم

النتيجة

Double

Double

0

NaN (لا رقم معرف مستحيل)

Double

Double

> 0

PositiveInfinity

Double

Double

< 0

NegativeInfinity

عند التقاط استثناء DivideByZeroException ‏‏ , يمكنك استخدام أعضاءها لمساعدتك على معالجتها. على سبيل المثال، الخاصية Message تحتوي على نص رسالة ‏‏ استثناء. لمزيد من المعلومات، راجع استثناء مصنفة المعالجة نظرة عامة حول Visual Basic.

عمليات إزاحة البت

ينفذ عملية إزاحة البت إزاحة حسابية لنقش البت. النمط مضمن في المُعامل على يسار ، بينما مُعامل اليسار يحدد عدد المواضع إزاحة النقش. إزاحة نقش إلى اليمين مع عامل التشغيل << في (Visual Basic) أو إلى يسار مع عامل التشغيل >> (Visual Basic).

نوع بيانات النقش الذي يجب أن يكون مُعامل SByte, Byte, Short, UShort, Integer, UInteger, Long، أو ULong. نوع البيانات الإزاحة يجب أن يكون مُعامل مقدار Integer أو يجب توسيع إلى Integer.

الإزاحات الحسابية ليست دائرية ، وهذا يعني أن البت الذي أزيح من أحد أطراف النتيجة لا يظهر مجددًا في الطرف الآخر . يتم تعيين مواضع بت المشغولة بواسطة الإزاحة كما يلي:

  • 0 من أجل الإزاحة الحسابية لليسار

  • 0 من أجل الإزاحة الحسابية لليمين للرقم الموجب

  • 0 للإزاحة الحسابية لليمين من نوع بيانات الأعداد الصحيحة (Byte, UShort, UInteger, ULong)

  • 1 لـ للإزاحة الحسابية لليمين لرقم سالب (SByte, Short, Integer، أو Long)

يزيح المثال التالي القيمة Integer لليمين واليسار.

Dim lResult, rResult As Integer
Dim pattern As Integer = 12
' The low-order bits of pattern are 0000 1100.
lResult = pattern << 3
' A left shift of 3 bits produces a value of 96.
rResult = pattern >> 2
' A right shift of 2 bits produces value of 3.

الإزاحات الحسابية لا تولِد استثناءات تجاوز السعة.

العمليات المختصة بالبت

بالإضافة إلى كونها عوامل منطقية Not, Or, And، و Xor أيضاً تنفيذ حساب أحادي المعامل عندما تستخدم تشغيل قيم رقمية. لمزيد من المعلومات، راجع "عمليات Bitwise " عوامل تشغيل منطقية و Bitwise في Visual Basic.

تأمين النوع

يجب أن تكون المعاملات عادةً من نفس النوع. على سبيل المثال، إذا قمت بإنجاز الإضافة مع متغير Integer ، يجب إضافته إلى متغير آخر Integer كما يجب تعيين النتيجة إلى متغير نوع Integer أيضاً.

باتجاه واحد لضمان ترميز نوع - آمن جيد لتمرين استخدام كشف الخيار الصارمِ. إذا قمت بتعيين Option Strict On, Visual Basic ينفّذ التحويلات تلقائياً نوع - آمن . على سبيل المثال، إذا حاولت إضافة متغير Integer إلى متغير Double و تعيين القيمة إلى متغير Double تستمر تشغيل العملية عادة بسبب قيمة Integer محول إلى Double بدون فقدان بيانات. ومن ناحية أخرى، يتسبب تحويل نوع غير آمن خطأ في المحول البرمجي مع Option Strict On. على سبيل المثال، إذا حاولت إضافة متغير Integer إلى متغير Double و تعيين القيمة إلى متغير Integer ، خطأ نتائج المحول برمجي، وذلك بسبب متغير Double لا يمكن تحويله ضمنيًا لنوع Integer.

إذا قمت بتعيين Option Strict Off، على الرغم من ذلك، Visual Basic يسمح بالتحويلات الضمنية التضييقية للحدوث, على الرغم من أنه يمكن أن يؤدي فقدان بيانات أو الدقة غير المتوقعة. لهذا السبب، نوصي باستخدام Option Strict On عند كتابة تعليمات الإنتاج البرمجية . لمزيد من المعلومات، راجع توسيع و تضييق التحويلات.

راجع أيضًا:

المرجع

عوامل التشغيل الحسابية في (Visual Basic)

عوامل تشغيل البت Shift

المبادئ

عوامل تشغيل المقارنة في Visual Basic

عوامل تشغيل التسلسل في Visual Basic

عوامل تشغيل منطقية و Bitwise في Visual Basic

مجموعة ذات كفاءة من عوامل التشغيل