المعامل ~
في أردوينو
يُجرِي المعامل ~
في لغة ++C العملية NOT على كل بت من البتات المعطاة بشكل مستقل -بخلاف المعامل &
والمعامل |
- ويعطي القيمة العددية الناتجة. وفقًا لهذا التعريف، إن كانت قيمة البت 1، فالقيمة الناتجة عن تطبيق العملية NOT عليه هي عكسها أي 0، وإن كانت 0 فستُغيِّر إلى 1. اطلع على الشكل التالي لفهم العملية بوضوح:
0 1 operand1
-----
1 0 ~operand1
البنية العامة
~operand;
أمثلة
في المثال التالي:
int a = 103; // 0000000001100111 :القيمة الثنائية هي
int b = ~a; // القيمة الثنائية الناتجة هي: 1111111110011000 وتساوي 104- في النظام العشري
ملاحظات وتحذيرات
قد تتعجب لرؤية عددٍ سالبٍ مثل 104- في المثال السابق ناتج عن عملية الإزاحة. هذا الأمر عائدٌ إلى تغيير قيمة أعلى بت (البت الأكثر أهمية [MSB]) في العدد الصحيح الذي يمثِّل بت الإشارة (sign bit) إلى القيمة 1. فإن كانت قيمة بت الإشارة هذا 1، فسيُفسِّر العدد على أنَّه سالب والعكس بالعكس. هذا الترميز المستعمل في الأعداد السالبة والموجبة يدعى «المتمم الثنائي» (two’s complement). لمزيد من المعلومات، اقرأ المقال الذي يشرح المتمم الثنائي في ويكيبيديا.
على الهامش، الجدير بالملاحظة أنَّه من أجل أي عدد صحيح x
، يكون ناتج x~
مماثلًا تمامًا للناتج x-1-
.
في بعض الأحيان، يمكن أن يسبِّب بت الإشارة في تعبير العدد الصحيح ذي الإشارة نتائج مفاجئة وغير مرغوبة.
انظر أيضًا
- المعامل
&
: يُجرِي في لغة ++C العملية AND على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة. - المعامل
>>
: يُجرِي البتات الواقعة على يساره إلى اليسار عددًا محدَّدًا من الخانات مساويًا للقيمة الموجودة على يمينه. - المعامل
<<
: يُجرِي البتات الواقعة على يساره إلى اليمين عددًا محدَّدًا من الخانات مساويًا للقيمة الموجودة على يمينه. - المعامل
^
: يُجرِي في لغة ++C العملية XOR على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة. - المعامل
|
: يُجرِي في لغة ++C العملية OR على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة. - المعامل
!
: يعكس المنطقي القيمة أو التعبير المنطقي الذي يسبقه عبر تطبيق العملية NOT المنطقية عليه.
- درسٌ عمليٌّ على العمليات الحسابية التي تجرَى على البت.