قناع (حوسبة)

في علم الحاسوب، القناع هو نمط من البتات التي يمكن إستعمالها للاحتفاظ بنمط اخر من البتات وضغطها. باستخدام قناع، يمكن ضبط بتات متعددة في بايت أو نايبل أو كلمة إلخ. أما القناع في أنظمة الاتصالات فيعني الوسيلة لحجب أو إخفاء أو منع الحصول على معلومات من خلال تحليل إشارات الغتصال.

وظائف القناع الشائعة

أقنعة بت إلى 1 
لتشغيل بعض وحدات البت، يمكن استخدام عملية OR المعيارية، باتباع مبدأ أن Y OR 1 = 1 وY OR 0 = Y لذلك، للتأكد من تشغيل بعض الشيء، OR يمكن استخدام الرقم 1. لترك بعض الشيء دون تغيير، يتم استخدام OR مع 0.
 1001 0101 1010 0101
 أو 1111 0000 1111 0000
 = 1111 0101 1111 0101

أقنعة بت إلى 0 
مثال على كل من modulo وmasking في C: #include <stdint.h>
#include <string.h>

int main(void) {
  const uint32_t NUM_BUCKETS = 0xFFFFFFFF; // 2^32
  const uint32_t MAX_RECORDS = 1<<10; // 2^10
  const uint32_t HASH_BITMASK = 0x3FF; // (2^10)-1

  char **token_array = NULL;
  // Handle memory allocation for token_array…

  char token[] = "some hashable value";
  uint32_t hashed_token = hash_function(token, strlen(token), NUM_BUCKETS);

  // Using modulo
  size_t index = hashed_token % MAX_RECORDS;

  // OR

  // Using bitmask
  size_t index = hashed_token & HASH_BITMASK;

  *(token_array+index) = token;

  // Free the memory from token_array …
  return 0;
}

مراجع

انظر أيضًا 

 قناع التقارب
 حقل بت
 معالجة البتات
 عملية bitwise
 تجزئة الشبكة
 مؤشر معلم
 umask

حسابيات ثنائية