أحادي المعامل AND على 32 بت عدد صحيح
-
20-09-2019 - |
سؤال
وكيف إجراء أحادي المعامل AND العملية على عددين 32-بت في C #؟
ذات صلة:
المحلول
ومع والمشغل
نصائح أخرى
استخدم المشغل &
.
وثنائي والمشغلين لأنواع لا يتجزأ [.] وبالنسبة لأنواع لا يتجزأ، ويحسب أحادي المعامل AND من المعاملات فيها.
اقتباس فقرة>MSDN .
var x = 1 & 5;
//x will = 1
const uint
BIT_ONE = 1,
BIT_TWO = 2,
BIT_THREE = 4;
uint bits = BIT_ONE + BIT_TWO;
if((bits & BIT_TWO) == BIT_TWO){ /* do thing */ }
واستخدام والمشغل (لا &&)
int a = 42;
int b = 21;
int result = a & b;
لمزيد من المعلومات قليلا هنا نتيجة جوجل الأولى:
<وأ href = "http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx" يختلط = " noreferrer نوفولو "> http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx
var result = (UInt32)1 & (UInt32)0x0000000F;
// result == (UInt32)1;
// result.GetType() : System.UInt32
إذا حاولت يلقي نتيجة لكثافة العمليات، وربما كنت تحصل على خطأ تجاوز بدءا من 0x80000000، دون رادع يسمح لتجنب تجاوز الأخطاء التي ليس من غير المألوف حتى عند العمل مع أقنعة بت.
result = 0xFFFFFFFF;
Int32 result2;
unchecked
{
result2 = (Int32)result;
}
// result2 == -1;