يفتقر محتوى هذه المقالة إلى مصادر موثوقة.

قناع (حوسبة)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
Binary mask ro.png

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

وظائف القناع الشائعة[عدل]

أقنعة بت إلى 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;
}

مراجع[عدل]

انظر أيضًا[عدل]