ForHosting KIT · أدوات المطورين

فك ترميز قناع البتات

مع read (1) وwrite (2) وexecute (4) وadmin (8) يُفك العدد 13 إلى read وexecute وadmin دون باقٍ غير مفسَّر. أدخل الرقم المخزن وقائمتك الخاصة من البتات المسماة لترى أي الصلاحيات أو الخيارات مفعّلة. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
القيمة
13
تحصل على
الأعلام النشطة
read, execute, admin
البتات المجهولة
0

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

كيف يخزن عدد واحد عدة خيارات

يجمع قناع البتات خيارات كثيرة من نوع نعم أو لا في عدد صحيح واحد. يشغل كل خيار خانة ثنائية قيمتها قوة للعدد اثنين: 1 و2 و4 و8 و16 وهكذا. ولأن هذه الخانات لا تتداخل أبدًا، فإن جمع قيم الخيارات المفعّلة يعطي مجموعًا فريدًا يمكن تفكيكه لاحقًا. يفحص المفكك كل اسم في قائمتك ليعرف هل خانته موجودة في القيمة المخزنة. فالعدد 13 مثلًا هو 8 زائد 4 زائد 1، لذلك تظهر الأسماء الثلاثة مفعّلة بالترتيب الذي أعلنتها به. والقيمة صفر صحيحة وتعني أنه لا خيار مفعّلًا.

ما يكشفه الباقي والأخطاء الشائعة

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

عرّفوا القناع ببتات صريحة ذات أسماء

يحتوي كل صف على اسم وبت. يجب أن تكون قيمة البت قوة موجبة للعدد اثنين، مثل 1 و2 و4 و8 و16 وما يليها. تمثّل هذه القيم مواضع ثنائية مستقلة، ولذلك يمكن جمعها بأمان عن طريق الجمع أو عملية OR على مستوى البتات.

تُزال المسافات المحيطة بالأسماء، ويجب أن يكون كل اسم فريدًا. كذلك يجب ألا تتكرر قيم البتات، لأن وضع تسميتين للموضع نفسه يجعل النتيجة ملتبسة. تُقبل أعداد JavaScript الصحيحة الدقيقة غير السالبة حتى 9,007,199,254,740,991، وتُقبل البتات المفردة حتى 4,503,599,627,370,496.

تؤدي السجلات غير الصالحة إلى خطأ واضح بدل تحويلها ضمنيًا إلى قائمة صلاحيات تبدو معقولة وهي غير صحيحة.

وضّحوا حقول التحكم في الوصول

حوّلوا قناع الصلاحيات المخزن إلى أسماء مقروءة قبل عرضه في لوحة إدارة أو تصديره ضمن سجل تدقيق.

رحّلوا التهيئات القديمة

وسّعوا الإعدادات الرقمية المضغوطة إلى قيم منطقية أو تسميات صريحة أثناء ترحيل قاعدة بيانات أو تطبيق.

ما القيم التي يمكن فكها؟

يمكن فك أي عدد صحيح آمن في JavaScript وغير سالب. يجب أن يكون كل بت معرّف قوة موجبة وفريدة للعدد اثنين.

هل يمكن أن تتضمن أسماء الأعلام مسافات؟

نعم. تُعامل الأسماء كسلاسل نصية وتُزال المسافات المحيطة بها. تُرفض الأسماء الفارغة أو المكررة بعد هذه المعالجة.

لماذا يجب أن يكون كل علم قوة للعدد اثنين؟

لأن كل قوة للعدد اثنين، مثل 1 و2 و4 و8 و16، تشغل خانة ثنائية مستقلة، فتُجمع الأعلام دون أن تتداخل. وللسبب نفسه يجب أن يكون كل بت وكل اسم فريدًا، وإلا صار الجواب ملتبسًا.

ماذا يعني بقاء قيمة متبقية؟

هي الجزء من العدد الذي لا تفسره قائمتك. فإذا فككت 13 بالأعلام read (1) وwrite (2) وexecute (4) وحدها يتبقى 8. وكثيرًا ما يدل ذلك على علم جديد أو خيار داخلي حذفته عمدًا أو اختلاف بين إصدارين من القائمة.

هل يهم ترتيب قائمة الأعلام؟

يهم في العرض فقط. يمكن كتابة التعريفات بأي ترتيب، وتعود الأسماء المفعّلة بالترتيب الذي أعلنتها به، فتحافظ واجهتك على ترتيبها المفضل بدل فرز رقمي.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev/bitmask-flags-decode

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev/bitmask-flags-decode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":13,"flags":[{"name":"read","bit":1},{"name":"write","bit":2},{"name":"execute","bit":4},{"name":"admin","bit":8}]}'
{
  "value": 13,
  "flags": [
    {
      "name": "read",
      "bit": 1
    },
    {
      "name": "write",
      "bit": 2
    },
    {
      "name": "execute",
      "bit": 4
    },
    {
      "name": "admin",
      "bit": 8
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.bitmask_flags_decode",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_flags256
max_safe_integer9007199254740991
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

تفيد هذه الأداة في قراءة حقول قواعد البيانات وحمولات API وقيم البروتوكولات وإعدادات التحكم في الوصول والتهيئات القديمة، من دون تحويل الأعداد يدويًا إلى النظام الثنائي أو الاعتماد على سلوك معاملات خاص بلغة برمجة معينة.

عرّفوا القناع ببتات صريحة ذات أسماء

ابدؤوا بالعدد الصحيح غير السالب في الحقل value، ثم أضيفوا صفًا إلى flags لكل معنى يعرّفه نظامكم. يمكن ترتيب التعريفات بأي صورة؛ إذ يحافظ active_flags على ترتيب الإدخال كي يبقى العرض المفضّل في تطبيقكم ثابتًا. تمثّل القيمة صفر قناعًا صالحًا وتعيد مصفوفة active_flags فارغة.

افهموا الأعلام النشطة والبتات المجهولة

يفحص المفكك كل تعريف ليتحقق مما إذا كان موضعه الثنائي موجودًا في value. أما القيمة غير الصفرية فلا تعني وجود خطأ بالضرورة؛ فقد تشير إلى علم جديد أضافه الخادم، أو خيار داخلي حُذف عمدًا، أو اختلاف بين إصدارات المخطط. إظهار الباقي أكثر أمانًا من إسقاط المعلومات. تُعاد القيمة الأصلية بلا تغيير، بحيث تحتفظ السجلات والفحوص اللاحقة بمصدر دقيق للنتيجة. عندما يكون الموضع موجودًا، يُضاف الاسم المقابل إلى active_flags وتُضاف قيمة البت إلى مجموع القيم النشطة المعرّفة. تتضمن الاستجابة أيضًا unknown_bits، وهي القيمة الناتجة عن طرح كل البتات النشطة المعرّفة من القيمة الأصلية. إذا كانت unknown_bits تساوي صفرًا، فالتعريفات المقدمة تفسّر القناع كاملًا. مثلًا، إذا كانت value تساوي 13 وكانت البتات read=1 وwrite=2 وexecute=4 وadmin=8، فالأسماء النشطة هي read وexecute وadmin، وتساوي unknown_bits صفرًا. إذا حُذف البت 8 من التعريفات، تعيد القيمة نفسها read وexecute وتصبح unknown_bits مساوية لـ8.

استخدموا فكًا حتميًا للصلاحيات والخيارات

تجعل هذه القدرة تلك الحقول مقروءة عند حدود التكامل. كما تتجنب معاملات JavaScript الموقعة ذات 32 بت، فتتعامل بدقة مع أقنعة تتجاوز 32 بت بكثير. تشيع أقنعة البتات في أعمدة قواعد البيانات وأوضاع أنظمة التشغيل ومفاتيح الميزات وسجلات الأجهزة وحالات الألعاب واستجابات API الخارجية، لأنها تجمع قيمًا منطقية كثيرة في عدد صحيح واحد. احفظوا تعريفات الأعلام إلى جانب إصدار المخطط، واستدعوا المفكك عند دخول السجل إلى مسار المعالجة، واستخدموا active_flags للعرض أو التصفية أو فحص السياسات. راقبوا unknown_bits بوصفها إشارة إلى التوافق؛ فوجود باقٍ غير صفري يمكن أن يوجّه السجل إلى المراجعة قبل أن يعامل البرنامج صلاحية جديدة كقيمة قديمة عادية. تنفذ الخوارزمية حسابات محدودة على 256 تعريفًا كحد أقصى، ولا تستخدم شبكة أو ساعة أو إعدادات محلية أو عشوائية أو حالة قابلة للتغيير، ولذلك ينتج JSON نفسه دائمًا JSON مطابقًا. يستخدم المتصفح وAPI المكتبة نفسها. التشغيل التفاعلي مجاني، أما مهام API الآلية الناجحة فسعرها $0.002.

افحصوا خيارات API والبروتوكولات

فكّوا قيم الخيارات المجمعة الواردة من عملية تكامل، واحتفظوا بالبتات غير المعرّفة بوصفها تنبيهًا إلى تغيّر المخطط.

ماذا تعني unknown_bits؟

إنها الجزء النشط من value الذي لا يقابله أي تعريف مقدم. تعني القيمة صفر أن التعريفات تفسّر القناع كاملًا.

هل يُحفظ ترتيب الأعلام؟

نعم. يتبع active_flags ترتيب التعريفات المقدمة بصرف النظر عن الترتيب العددي لقيم البتات.

ما تكلفة API؟

تستخدم كل مهمة API ناجحة السعر الأساسي المنشور $0.002. ويمكنكم أيضًا تشغيل المفكك مجانًا في المتصفح.

اطّلع على توثيق KIT الكامل ←