تحويل النص إلى تمثيل ثنائي
تصبح «Hi» هكذا: 01001000 01101001، أي مجموعة من ثمانية أصفار وآحاد لكل بايت، وهو الشكل الذي يخزنه الحاسوب فعلًا. الصق المجموعات مرة أخرى فيعود النص الأصلي كما هو. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hi
- وضع الحساب
- Encode
- النتيجة
- 01001000 01101001
- المُدخَل
- Hi
- ثنائي
- 01001000 01101001
- المجموعات
- 01001000, 01101001
تحويل النص إلى تمثيل ثنائي يربط كل محرف بأنماط الثمانية بتات التي تخزّنها الحواسيب فعليًا، وتحويل الثنائي إلى نص يعكس هذا التطابق فتستعيدون السلسلة الأصلية. أدخلوا نص UTF-8 عاديًا واختاروا encode لتلقّي مجموعات مفصولة بمسافات من ثمانية أصفار وآحاد—مجموعة لكل بايت—أو الصقوا مجموعات ثنائية واختاروا decode لإعادة بناء المحارف.
كيف يصبح النص تمثيلًا ثنائيًا من 8 بت ولماذا يهم طول المجموعة
لا تخزّن الحواسيب الحروف كأشكال؛ بل تخزّن متتاليات بايت، وكل بايت ثمانية بتات. بالنسبة للحروف الإنجليزية في النطاق اللاتيني الأساسي، غالبًا ما يقابل المحرف بايتًا واحدًا قيمته العشرية هي رمز ASCII الكلاسيكي—مثلًا حرف H الكبير اثنان وسبعون، أي صفر-واحد-صفر-صفر-واحد-صفر-صفر-صفر بالثنائي. النص الحديث UTF-8، لذا قد تحتاج الحروف المعلّمة والرموز التعبيرية والكتابات غير اللاتينية بايتين أو ثلاثة أو أربعة، وبالتالي مجموعتين أو ثلاثًا أو أربعًا من ثمانية بتات.
يسير الترميز على متتالية بايتات UTF-8 من اليسار إلى اليمين ويكتب كل بايت كثمانية أرقام مع البت الأكثر أهمية أولًا، رابطًا المجموعات بمسافة واحدة ليُحسب الثُماني بنظرة. يفعل فك الترميز العكس: يقسم الدخل إلى مجموعات مرشّحة، ويشترط أن تطابق كل مجموعة ثمانية محارف صفر أو واحد تمامًا، ويحوّل كل مجموعة إلى قيمة بايت بين صفر ومئتين وخمسة وخمسين، ثم يفسّر مصفوفة البايتات على أنها UTF-8. إن احتوت مجموعة سبعة بتات أو تسعة أو محرفًا غير ثنائي، وجب أن يفشل المحوّل.
يُسمح بالثنائي المتصل بلا مسافات فقط عندما يكون الطول الكلي مضاعفًا لثمانية، لأن كل شريحة من ثمانية أرقام متتالية ما زالت ثُمانيًا.
نصائح عملية وحدود ومتى تُستخدم أدوات ذات صلة
وفضّلوا decode عندما تملكون أصلًا سلاسل بتات من كتاب أو تفريغ حزم وتريدون المحارف مجددًا. فحوصات الذهاب والإياب أسرع اختبار دخان: رمّزوا كلمة قصيرة مثل Hi، وتأكدوا أن المجموعتين تطابقان بايتات ASCII المعروفة لحرف H وi، ثم فكّوا تلك المجموعات وتأكدوا من استعادة السلسلة الأصلية. أبقوا الحمولات دون حد المحارف المنشور؛ تفريغات عدّة ميغابايت مكانها دون اتصال.
فضّلوا هذه القدرة عندما تكون نية البحث تحويل محارف النص إلى تمثيل ثنائي من ثمانية بتات أو استعادة النص من تلك المجموعات؛ واستخدموا منسّق hex إلى ثنائي عندما يكون الدخل أرقامًا ست عشرية أصلًا، وعارض بتات للفاصلة العائمة عندما تحتاجون حقول الإشارة والأسّ والمانتيسا. عند التدريس، اعرضوا نفس الرمز التعبيري أو الحرف المعلّم بجانب حرف ASCII بسيط ليرى الطلاب ثُمانيات UTF-8 متعددة البايت تظهر كمجموعات ثمانية بتات إضافية لا كنقطة رمز غامضة واحدة على الصفحة.
حالات الاستخدام
مراجعة واجبات أنماط بتات ASCII وUTF-8
يرمّز الطلاب عبارات قصيرة، ويقارنون مجموعات ثمانية البت المكتوبة يدويًا بالنتيجة الحتمية، ويفكّون ثنائيًا يقدّمه المعلّم دون جدول بيانات.
عروض تعليمية للبروتوكولات والشبكات
تُظهر الورش كيف تصبح التسميات القابلة للطباعة ثُمانيات على السلك، ثم تفرض مجموعات بتات ناقصة لتوضيح قواعد التأطير الصارمة.
الأسئلة الشائعة
ماذا يعيد تحويل النص إلى تمثيل ثنائي؟
في mode encode يعيد مجموعات ثمانية بتات مفصولة بمسافات (واحدة لكل بايت UTF-8)، إضافة إلى مصفوفات groups وقيم بايت صحيحة. في mode decode يعيد نص UTF-8 المستعاد.
هل تدعم UTF-8 والرموز التعبيرية؟
نعم. الترميز يستخدم UTF-8، فالمحارف متعددة البايت تصبح عدة مجموعات من ثمانية بتات. ورفض فك الترميز متتاليات البايت التي ليست UTF-8 صالحًا.
هل يمكن لصق ثنائي بلا مسافات؟
نعم إذا كانت السلسلة المتصلة 0 و1 فقط وطولها مضاعف لثمانية.
ماذا يحدث إذا كانت إحدى المجموعات من سبعة أرقام أو تسعة؟
يتوقف التحويل برسالة واضحة بدل التخمين. يجب أن تتكون كل مجموعة من ثمانية أصفار وآحاد بالضبط، لأن الإكمال أو القص بصمت يغيّر النص ويخفي الخطأ في التمرين.
ماذا تمثل كل مجموعة من ثمانية بتات؟
كل مجموعة هي بايت واحد مكتوب بالنظام الثنائي، أي رقم واحد كما يُخزَّن في الذاكرة. فالحرف H الكبير مثلًا قيمته 72، ولذلك يُكتب بالنظام الثنائي 01001000.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/text/text-to-binary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/text/text-to-binary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/text-to-binary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/text-to-binary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/text-to-binary", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hi"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.text_to_binary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_tokens | 20000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يجب أن تكون كل مجموعة بتات في الاتجاه العكسي ثمانية أرقام تمامًا؛ فالمجموعة القصيرة أو الطويلة، أو السلسلة المتصلة التي لا يكون طولها مضاعفًا لثمانية، تعيد خطأ invalid_input واضحًا بدل اختراع حشو. المسار حساب حتمي خالص على بايتات UTF-8—بلا شبكة ولا بذور عشوائية ولا اعتماد على الساعة—لذا يعيد المشغّل المجاني في المتصفح وواجهة API المدفوعة مسبقًا نفس JSON في كل استدعاء.
كيف يصبح النص تمثيلًا ثنائيًا من 8 بت ولماذا يهم طول المجموعة
الحشو الصامت بالأصفار أو القطع يغيّر الحمولة ويخفي أخطاء ورقة العمل. تستهدف هذه الصفحة من يبحث عن تحويل النص إلى تمثيل ثنائي، أو إعادة مجموعات ثنائية إلى نص مقروء، أو التحقق من ترميز محارف ثمانية البت عبر الإنترنت؛ وليست عارض بتات IEEE للفاصلة العائمة ولا مُخطّط hex إلى ثنائي لأرقام هي أصلًا في الأساس ستة عشر.
كيف تستدعون واجهة API وما الذي تحتويه الاستجابة
الوضع الافتراضي encode: تصبح بايتات UTF-8 للنص مجموعات ثنائية من ثمانية بتات مفصولة بمسافات. يعامل mode decode الحقل text كمجموعات ثنائية—ثُمانيات مفصولة بمسافات بيضاء أو سلسلة متصلة من صفر وواحد طولها مضاعف لثمانية—ويعطي سلسلة UTF-8 المستعادة. عند نجاح decode تتضمن mode وinput وresult وtext بسلسلة UTF-8 المفكوكة، وbinary مُطبَّعًا إلى مجموعات مفصولة بمسافات، ونفس مصفوفات groups وbytes، والعدادات، ورسالة مكافئة. أرسلوا جسم JSON بحقل نصّي إلزامي text (أسماء بديلة input وvalue وdata) وmode اختياري encode أو decode. يُحدّ طول الدخل بمائة ألف محرف حتى لا تستنفد طلبية واحدة ذاكرة Worker بسلاسل ضخمة. عند نجاح encode تتضمن الاستجابة mode وinput وresult وbinary بنفس سلسلة البتات المفصولة بمسافات، وgroups كمصفوفة سلاسل من ثمانية محارف، وbytes كقيم بايت صحيحة، وbyte_count وbit_count، ورسالة قصيرة. فشل التحقق—غياب text، أو text ليس سلسلة، أو دخل مفرط الحجم، أو mode مجهول، أو مجموعة بتات ليست ثمانية أرقام، أو محارف غير ثنائية داخل مجموعة، أو بايتات مفكوكة ليست UTF-8 صالحًا—يعيد invalid_input ولا يُحاسب أبدًا. التسعير مبلغ ثابت $0.002 لكل طلب ناجح بوحدة item وسعر وحدوي هامشي صفر.
نصائح عملية وحدود ومتى تُستخدم أدوات ذات صلة
أرسلوا عمدًا جزءًا من سبعة بتات أو سلسلة ثنائية متصلة طولها ليس مضاعفًا لثمانية لتثبتوا أن عميلكم يعالج invalid_input والرسالة التي تنص على أن كل مجموعة يجب أن تكون ثمانية أرقام. هذه الأداة ليست محوّل hex—أرقام hex أساس ستة عشر لا أساس اثنين—وليست فاحص بتات لعدد عائم IEEE-754. المهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقًا، مما يبقي سكربتات الاستكشاف رخيصة عندما يلصق المتعلمون مجموعات بتات ناقصة.
حالات التكامل
fixtures لاختبارات وحدوية للمرمّزات والمحلّلات
ولّدوا سلاسل ثنائية معروفة من نص fixture وأكّدوا أن decode يستعيد نفس بايتات UTF-8 في CI دون مساعدات تعبئة بتات مخصّصة.
أسئلة تقنية
لماذا يجب أن تكون كل مجموعة بتات ثمانية أرقام تمامًا؟
البايت ثمانية بتات. مجموعات بطول آخر ستكون غامضة بلا قواعد حشو، لذا المجموعات الناقصة أو المفرطة الطول تعيد invalid_input عند العكس.
هل تحويل النص إلى ثنائي مجاني؟
أداة المتصفح مجانية وتعمل محليًا. استدعاءات API تستخدم رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل طلب ناجح؛ والمهام الفاشلة لا تُحاسب أبدًا.