حاسبة بت التكافؤ
في 1011001 أربعة آحاد، فبت التكافؤ الزوجي 0 والفردي 1، وعند إلحاق التكافؤ الزوجي تصبح 10110010. احسب البتين لسلسلة بتات أو لبايت، وألحق ما تحتاجه أو تحقق من البت الأخير. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- البتات
- 1011001
- وضع الحساب
- Append
- التكافؤ
- Even
- المصدر
- bits
- عدد البتات
- 7
- عدد الآحاد
- 4
- بت التكافؤ
- 0
بتات التكافؤ هي الأداة الكلاسيكية لكشف الخطأ الواحد في الاتصالات الرقمية: بت إضافي يجعل مجموع الآحاد زوجيًا أو فرديًا حتى يظهر البت المقلوب لدى المستقبل. يحتاج طلاب بروتوكولات التسلسل، ومؤلفو البرمجيات المضمنة الذين يبنون إطارات UART، وسكربتات الأتمتة التي تجمع أو تفحص أكواد كشف الأخطاء البسيطة، إلى إجابة حتمية لسلسلة بتات أو بايت. تقبل حاسبة بت التكافؤ هذه سلسلة من الأصفار والآحاد أو بايتًا واحدًا من صفر إلى مئتين وخمسة وخمسين، وتحسب بتي التكافؤ الزوجي والفردي، وتُلحق البت حسب الاتفاقية المختارة، أو تتحقق من أن بت التكافؤ الختامي يطابق المخطط المتوقع.
معنى التكافؤ الزوجي والفردي لسلسلة البت
بت التكافؤ هو بت إضافي واحد يُختار بحيث يخضع العدد الإجمالي للآحاد في كلمة البيانات مع التكافؤ لقاعدة ثابتة. في التكافؤ الزوجي يجب أن يكون مجموع الآحاد زوجيًا: إن كانت البيانات ذات عدد زوجي من الآحاد أصلًا فبت التكافؤ صفر، وإن كان العدد فرديًا فبت التكافؤ واحد. في التكافؤ الفردي يجب أن يكون المجموع فرديًا، فيكون البت عكس حالة الزوجي.
في المثال الدراسي الكلاسيكي واحد-صفر-واحد-واحد-صفر-صفر-واحد تحتوي البيانات أربعة آحاد وهي زوجية أصلًا، فيكون بت التكافؤ الزوجي صفرًا والفردي واحدًا؛ وإلحاق التكافؤ الزوجي يعطي واحد-صفر-واحد-واحد-صفر-صفر-واحد-صفر. يعيد المستقبل حساب التكافؤ المتوقع على بتات البيانات ويقارنه بالبت الختامي المرسل؛ أي اختلاف يدل على أن بتًا واحدًا على الأقل في الإطار قُلب أو قُطع. لا يصحح التكافؤ الأخطاء ولا يكشف كل تلف متعدد البتات، لكنه رخيص وحتمي وما زال يظهر في UART ووحدات الذاكرة البسيطة والمختبرات التعليمية.
استخدموا وضع append عند بناء إطار وحاجتكم إلى بت الذيل؛ واستخدموا verify عندما تكون لديكم بتات بيانات مع بت تكافؤ ختامي وتحتاجون إلى مؤشر منطقي valid.
حالات الاستخدام
التحقق من الالتقاط وبوابات CI
الصقوا تفريغات المحلل في وضع verify للتأكد من أن بت التكافؤ الختامي يطابق الاتفاقية الزوجية أو الفردية، وأفشلوا البناء عندما يكون valid هو false.
الأسئلة الشائعة
ما الفرق بين التكافؤ الزوجي والفردي؟
يختار التكافؤ الزوجي البت بحيث يكون مجموع الآحاد زوجيًا. يختار التكافؤ الفردي البت المعاكس ليكون المجموع فرديًا. يُعاد كلا القيمتين دائمًا.
كيف يعمل وضع verify؟
قدّموا بتات البيانات مع بت تكافؤ ختامي. يُقارن البت الأخير بالتكافؤ المتوقع تحت parity even أو odd؛ ويكون valid هو true فقط عند التطابق.
كيف يُحسب بت التكافؤ الزوجي؟
عُدّ الآحاد في البيانات: إذا كان عددها زوجيًا أصلًا فالبت 0، وإلا فهو 1. في 1011001 أربعة آحاد، لذا يكون البت الزوجي 0 وتصبح الكلمة كاملة 10110010.
هل يمكنني إدخال بايت بدل سلسلة بتات؟
نعم. أدخل بايتًا واحدًا من 0 إلى 255، فيُوسَّع إلى ثمانية بتات تبدأ بالبت الأعلى قيمة قبل الحساب. ويُستخدم البايت عندما تترك سلسلة البتات فارغة.
هل يكشف بت التكافؤ كل أخطاء النقل؟
لا. يدل على أن بتًا واحدًا على الأقل قد تغيّر عندما لا يطابق التكافؤ المعاد حسابه، لكنه لا يكشف كل تلف في عدة بتات ولا يصحح شيئًا. ويبقى مستخدمًا لأنه بسيط وخفيف.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/parity-bit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bits":"1011001","data":"valor-ejemplo"}'const res = await fetch("https://api.kit.forhosting.com/enc/parity-bit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bits": "1011001",
"data": "valor-ejemplo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/parity-bit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bits": "1011001",
"data": "valor-ejemplo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/parity-bit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bits":"1011001","data":"valor-ejemplo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bits":"1011001","data":"valor-ejemplo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/parity-bit", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"bits": "1011001",
"data": "valor-ejemplo"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.parity_bit",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تفشل السلاسل غير السليمة — أحرف غير الصفر والواحد بعد إزالة الفواصل الاختيارية — بـ invalid_input بدل اختراع نتيجة. المنطق parse النقي نفسه يشغّل ودجت المتصفح المجاني ومسار API المدفوع، فلا تختلف الواجبات وأدوات الإنتاج في بت واحد.
معنى التكافؤ الزوجي والفردي لسلسلة البت
تثبت هذه الحاسبة ذلك التعريف من الكتاب لكلا الاتفاقين، فترون دائمًا even_parity_bit و odd_parity_bit مع البت الذي اخترتموه لـ append أو verify.
عقد الإدخال وحقول الاستجابة والسلاسل غير السليمة
الوضع الافتراضي append ويمكن أن يكون append أو verify؛ والتكافؤ الافتراضي even ويمكن أن يكون even أو odd. حافظوا على السلاسل دون الطول الأقصى الموثق لراحة المتصفح؛ الخوارزمية مرور خطي واحد على البتات بلا شبكة وبلا عشوائية. أرسلوا جسم JSON يتضمن bits أو byte. حقل bits سلسلة من أحرف الصفر والواحد؛ تُزال المسافات والشرطات السفلية والنقطتان والواصلات والفواصل قبل التحقق، ثم أي حرف غير ثنائي متبقٍ يرفع invalid_input برسالة سلسلة بت غير سليمة. حقل byte عدد صحيح من صفر إلى مئتين وخمسة وخمسين ويُوسَّع إلى سلسلة ثمانية بتات بالبت الأكثر أهمية أولًا عند حذف bits. في وضع append تعيد الاستجابة bits و bit_count و ones_count و parity_bit المختار و even_parity_bit و odd_parity_bit و bits_with_parity مع البت الملحق. في وضع verify يُعامل آخر بت من الإدخال كبت تكافؤ مستلم، و data_bits هي البتات السابقة، ويُعاد حساب expected_parity_bit وفق المخطط المختار، ويكون valid هو true فقط عند التطابق. تُقبل الأسماء البديلة data و bit_string و value و input لـ bits؛ و operation و op و action لـ mode؛ و parity_type و scheme لـ parity. السلاسل الفارغة بعد التنظيف، و verify بأقل من بتين، والبايتات غير الصحيحة خارج صفر إلى مئتين وخمسة وخمسين، وقيم mode أو parity المجهولة تفشل جميعها بـ invalid_input ولا تُفوتر.
أين تثبت حاسبة بت التكافؤ قيمتها
تستخدم مقررات الإلكترونيات وهندسة الحاسوب حاسبة بت تكافؤ ليراجع المتعلمون واجبات التكافؤ الزوجي والفردي دون عد الآحاد ذهنيًا. تكسب مواقع المحتوى التي تتنافس على حاسبة بت التكافؤ أداة حية يطابق مسارها المجاني مسار الأتمتة بايتًا ببايت على الوحدة النقية نفسها. حافظوا على الطلبات حتمية، وثبتوا متجهات ذهبية مثل واحد-صفر-واحد-واحد-صفر-صفر-واحد تحت تكافؤ زوجي يساوي صفرًا، لتحصلوا على تكافؤ قابل للتكرار للمختبرات و CI وعمال الحافة دون تضمين عدّادات بت مرتجلة في كل خدمة. يلصق مطورو الأنظمة المضمنة سلسلة بتات حمولة UART في ودجت المتصفح المجاني أثناء تنفيذ مُشغّل تسلسلي ويثبتون parity_bit المعاد في اختبارات الوحدة. تستدعي سكربتات أدوات البروتوكول والذاكرة الـ API لإلحاق تكافؤ زوجي قبل الكتابة أو للتحقق من إطارات التقطتها محلل منطقي، وتعامل valid false كإشارة واضحة لإعادة الإرسال أو القراءة. ولأن التنفيذ parse نقي من المستوى A، تكلف كل مكالمة ناجحة السعر الأساسي المنشور $0.002 بلا رموز نموذج وبلا شبكة صادرة. اقرنوا bits_with_parity بمُرمّز الخط عند الحاجة إلى الذيل الدقيق، أو أكدوا even_parity_bit و odd_parity_bit جنبًا إلى جنب في مواد تعليمية تقارن الاتفاقين.
حالات التكامل
تمارين صفية للتكافؤ الزوجي والفردي
دعوا الطلاب يرسلون سلسلة بتات ويقارنون even_parity_bit و odd_parity_bit بإجابات الكتاب، بما في ذلك وضع verify للإطارات التي تتضمن بت ذيل مسبقًا.
تجميع إطارات UART والتسلسل
احسبوا بت التكافؤ لسلسلة بتات أو بايت الحمولة، وألحقوه بـ mode append، وتحققوا من bits_with_parity في اختبارات البرمجيات الثابتة قبل برمجة الشريحة.
أسئلة تقنية
كيف أحسب بت تكافؤ زوجي لسلسلة بتات؟
أرسلوا bits كسلسلة 0/1 (أو byte من 0–255) مع mode append و parity even. تعيد الـ API الحقل parity_bit و bits_with_parity وكلًا من even_parity_bit و odd_parity_bit.
ماذا يحدث إن كانت سلسلة البت غير سليمة؟
بعد إزالة المسافات والشرطات السفلية والنقطتين والواصلات والفواصل، أي حرف غير 0 أو 1 يفشل بـ invalid_input مشيرًا إلى سلسلة بت غير سليمة. لا تُفوتر تلك الإخفاقات.
كم تكلفة حاسبة بت التكافؤ؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل مكالمة ناجحة؛ والإدخال غير الصالح لا يُفوتر.