مولد قناع البتات
أربعة آحاد متتالية تبدأ من البت 0 تشكّل القناع 15، أي 0b1111 بالثنائي و0xf بالست عشري. أدخل العرض، وموضع أدنى بت إن لزم، لتحصل على القناع بالأنظمة الثلاثة مع نطاق البتات الذي يغطيه. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- البتات
- 4
- البداية
- 0
- القناع بالنظام العشري
- 15
- القناع بالنظام الثنائي
- 0b1111
- القناع بالنظام السداسي عشر
- 0xf
- أقل بت أهمية
- 0
قناع البتات المؤلف من آحاد متتالية هو اللبنة الأساسية لحقول الأعلام وترويسات البروتوكول المعبأة ونوافذ السجلات في البرمجيات الثابتة وشيفرة الأنظمة. تحتاجون إلى N من الآحاد على التوالي، وقد تُزاح يسارًا ليبدأ الحقل عند البت k، وإلى القيمة نفسها بالنظام الثنائي للمراجعة على مستوى البت، وبالعشري للثوابت، وبالست عشري لصحائف البيانات. يقبل مولد قناع البتات هذا العرض بالبتات وموضع بداية اختياري لأدنى بت مفعّل، ويطبّق الصيغة الكلاسيكية لإزاحة الواحد يسارًا بمقدار العرض ناقص واحد ثم بمقدار البداية، ويعيد العشري والثنائي ببادئة 0b والست عشري ببادئة 0x مع نطاق البتات الشامل.
كيف تُبنى أقنعة الآحاد المتتالية
سلسلة الآحاد المتتالية هي القناع المستخدم عندما يعيش حقل متعدد البتات داخل كلمة أوسع. إذا كان عرض الحقل أربعة بتات ويقع عند الطرف الأقل أهمية، يكون القناع ثنائيًا 1111 وعشريًا خمسة عشر وست عشري 0xf. وإذا بدأ الحقل نفسه ذو الأربعة بتات عند البت اثنين، تُحفظ الآحاد الأربعة وتُزاح يسارًا بموضعين فينتج الثنائي 111100 والعشري ستون والست عشري 0x3c.
جبريًا تساوي السلسلة غير المزاحة اثنين مرفوعًا إلى العرض ناقص واحد، وتُكتب بصيغة الإزاحة كقوس مفتوح واحد left-shift العرض قوس مغلق ناقص واحد؛ والضرب في اثنين مرفوعًا إلى البداية هو الإزاحة اليسرى الثانية. البت صفر هو دائمًا الأقل أهمية، بما يوافق C وJavaScript وRust ومعظم أدلة المعالج. وتعيد formula صياغة هوية الإزاحة بجوار الثوابت في الوثائق المولَّدة أو تعليقات اختبارات الوحدة.
أين يُثبت مولد قناع البتات قيمته
يحدّد مؤلفو البرمجيات الثابتة والمشغّلات يوميًا حقول حالة وتحكم معبأة؛ وتوليد القناع مرة واحدة يتجنب أخطاء الزيادة أو النقصان بواحد عندما ينتقل الحقل في مراجعة للسيليكون. يوثّق مصممو البروتوكولات ومهندسو الهندسة العكسية صيغ الأسلاك بثوابت ست عشرية ويحتاجون مخططات ثنائية مطابقة للمقالات وRFC. يُصدر مؤلفو المترجمات والآلات الافتراضية تسلسلات قناع وإزاحة لاستخراج حقول البت ويريدون مرجعًا يطابق صيغة الكتب في مجموعات الانحدار.
يمكن لمن يدرّسون عوامل البت إعطاء الطلاب العرض والبداية ومقارنة إجابات 0b و0x اليدوية بخدمة حتمية بدل محاكي معالج كامل. تكتسب مواقع المحتوى التي تتصدر لعبارة مولد قناع البتات أداة مجانية حية يطابق مسار متصفحها مسار الأتمتة المدفوع على الوحدة النقية نفسها.
حالات الاستخدام
ثوابت السجلات والأعلام المعبأة
ولّدوا أقنعة عشري و0b و0x لحقول سجل متعددة البتات من العرض وبداية LSB حتى تتوافق المشغّلات وجداول صحائف البيانات.
توثيق البروتوكولات وصيغ الأسلاك
وثّقوا حقول بت الترويسة بمخططات ثنائية وثوابت ست عشرية من صيغة الآحاد المتتالية نفسها.
الأسئلة الشائعة
ما معنى المعامل start؟
start هو موضع أدنى بت مفعّل، بالعد من صفر عند البت الأقل أهمية.
هل البت صفر هو الأقل أهمية؟
نعم. ترقيم البتات يوافق أعراف المعالجات واللغات الشائعة: الإزاحة يسارًا بمقدار start تنقل الحقل نحو بتات أعلى أهمية.
كيف أنشئ قناع حقل يبدأ من البت 2؟
احتفظ بعرض الحقل وحدد 2 موضعًا لأدنى بت. يصبح حقل من أربعة بتات 111100 بالثنائي و60 بالعشري و0x3c بالست عشري، أي الآحاد الأربعة نفسها في 1111 بعد إزاحتها خانتين إلى اليسار.
ما حدود العرض وموضع البداية؟
يتراوح العرض بين 1 و53 بتًا، ولا يجوز أن يتجاوز مجموع العرض وموضع البداية 53. وبذلك يبقى كل قناع عددًا صحيحًا دقيقًا بالعشري والثنائي والست عشري دون أي تقريب.
لماذا لا تظهر أصفار بادئة في القيمة الست عشرية؟
لأنها تُعرض بحروف صغيرة ودون حشو إجباري، حتى تُقرأ الحقول القصيرة بنظرة واحدة: أربعة بتات تعطي 0xf لا رقمًا طويلًا مليئًا بالأصفار. ويعرض الثنائي أيضًا البتات ذات الدلالة فقط.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/bit-mask-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bits":4}'const res = await fetch("https://api.kit.forhosting.com/dev/bit-mask-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bits": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bit-mask-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bits": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bit-mask-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bits":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bits":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bit-mask-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"bits": 4
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bit_mask_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحافظ الحدود على كل نتيجة داخل عدد صحيح آمن حتى لا تفقد عملاء JSON دقتها. يشغّل الوحدة النقية نفسها أداة المتصفح المجانية ومسار API المدفوع مسبقًا، فتتوافق الوثائق والاختبارات وسكربتات الإنتاج على كل ثابت علم.
كيف تُبنى أقنعة الآحاد المتتالية
ترمز هذه القدرة إلى تلك الهوية تمامًا: mask equals open parenthesis open parenthesis one left-shift bits close parenthesis minus one close parenthesis left-shift start. تعيد الاستجابة bits وstart، وتعرض mask_decimal كرقم JSON وmask_binary كنص ببادئة 0b للبتات ذات الدلالة فقط وmask_hex كست عشري صغير ببادئة 0x دون حشو إجباري لتبقى الحقول القصيرة مقروءة. يسمّي lowest_bit وhighest_bit النطاق الشامل للبتات المفعّلة لتوثيق نافذة سجل دون إعادة عد الآحاد يدويًا.
عقد الإدخال والحدود وسلوك الخطأ
تستخدم التنفيذ داخليًا إزاحات BigInt حتى لا تقع العمليات الوسيطة في فخ الاثنين وثلاثين بتًا الموقّعة لإزاحات أرقام JavaScript، ثم تحوّل إلى Number آمن للحقل العشري. أرسلوا جسم JSON عبر POST مع bits إلزاميًا: عددًا صحيحًا محدودًا من واحد إلى ثلاثة وخمسين يصف عدد الآحاد المتتالية المطلوبة. start اختياري وقيمته الافتراضية صفر؛ وإذا وُجد فيجب أن يكون عددًا صحيحًا من صفر إلى اثنين وخمسين يسمّي موضع أدنى بت مفعّل. ولأن أرقام JSON تشارك الجزء العشري لـ IEEE مزدوج الدقة، يجب ألا يتجاوز قيد start زائد bits ثلاثة وخمسين حتى لا يتجاوز القناع اثنين مرفوعًا إلى ثلاثة وخمسين ناقص واحد، Number.MAX_SAFE_INTEGER. المخالفات وغياب bits وغير الأعداد الصحيحة والقيم المنطقية والسلاسل الفارغة تفشل بـ invalid_input مع تسمية القاعدة، ولا تُحتسب تلك الإخفاقات. تعيد الاستدعاءات الناجحة دائمًا الشكل النقي نفسه: bits وstart مُعادان، والقواعد الثلاث، وفهارس البتات الشاملة، وسلسلة formula. مثال: bits يساوي ثمانية وstart يساوي صفرًا يعطي mask_decimal مئتين وخمسة وخمسين وmask_binary 0b11111111 وmask_hex 0xff وlowest_bit صفر وhighest_bit سبعة. مثال: bits يساوي ثلاثة وstart يساوي خمسة يعطي mask_decimal مئتين وأربعة وعشرين وثنائي 0b11100000 وست عشري 0xe0 مع البتات من خمسة إلى سبعة مفعّلة.
أين يُثبت مولد قناع البتات قيمته
ولأنها من مستوى parse A، تكلف كل استدعاء ناجح السعر الأساسي المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة، ولا يستهلك الإدخال غير الصالح الرصيد. أبقوا الطلبات صغيرة وثبّتوا القواعد الثلاث في الاختبارات لتحصلوا على ثوابت أعلام قابلة لإعادة الإنتاج لـ SDK ومقتطفات CMS وعقد الحافة دون إقامة مكتبة محلية خاصة لتلاعب البتات.
حالات التكامل
تعليم إزاحات البت والأقنعة
اسمحوا للطلاب بالتحقق من ((1 << bits) - 1) << start في الواجبات المقيَّمة دون عدّ الآحاد يدويًا بعد كل إزاحة.
أسئلة تقنية
كيف أولّد قناع بتات من آحاد متتالية؟
أرسلوا bits (العرض، 1–53) وstart اختياريًا (فهرس LSB، الافتراضي 0). تعيد API القيمة ((1 << bits) - 1) << start كـ mask_decimal وmask_binary (0b…) وmask_hex (0x…).
لماذا يوجد حد 53 بتًا؟
تستخدم أرقام JSON أعداد IEEE مزدوجة بجزء عشري من 53 بتًا. الإبقاء على start + bits ≤ 53 يضمن أن mask_decimal عدد صحيح آمن دقيق بلا فقدان دقة.
كم تكلفة مولد قناع البتات؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل استدعاء ناجح؛ ولا تُحتسب الإدخالات غير الصالحة.