حاسبة بلا إشارة إلى موقَّع
العدد 255 في 8 بتات كله آحاد، لذا يصبح −1 عند قراءته عددًا موقَّعًا: أدخل قيمة بلا إشارة وعرضًا من 2 إلى 53 بتًا لترى قراءتها بالمتمم الثنائي ونمط البتات وهل البت الأعلى مضبوط. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- القيمة
- 255
- البتات
- 8
- بإشارة
- -1
- بلا إشارة
- 255
- ثنائي
- 11111111
- Min
- -128
عندما تُحوِّلون عددًا صحيحًا بلا إشارة إلى نوع موقَّع بنفس عرض البتات، لا تغيّر اللغات الحديثة البتات؛ بل تعيد تفسيرها وفق المتمم الثنائي. قيمة مثل مئتين وخمسة وخمسين مخزَّنة في ثمانية بتات تكون كلها آحادًا؛ كـ uint8 تساوي مئتين وخمسة وخمسين، أما كـ int8 فتكون البتة العليا مفعَّلة فيعني النمط نفسه سالب واحد. يحتاج الطلاب ومطوّرو الأنظمة المضمَّنة ومرشحو المقابلات إلى طريقة سريعة وحتمية لرؤية هذا التعيين لأي عرض من بتين إلى ثلاثة وخمسين بتًا دون عدّ البواقي يدويًا. تقبل حاسبة التحويل من بلا إشارة إلى موقَّع قيمة غير سالبة وعرض بتات، وتتحقق من أن القيمة تدخل نطاق بلا إشارة لذلك العرض، وتعيد القراءة الموقَّعة بالمتمم الثنائي مع نمط البتات الدقيق وعلامة واضحة للبتة العليا. يُرفض الفيضان خارج الصفر حتى اثنين مرفوعة لأس العرض ناقص واحد بدل اللف الصامت.
كيف تعمل إعادة التفسير من بلا إشارة إلى موقَّع بالمتمم الثنائي
ثبّتوا عرض بتات w لا يقل عن اثنين. يمكن قراءة كل نمط بتات بطول w بطريقتين. كعدد صحيح بلا إشارة هو عدد صحيح u من الصفر حتى اثنين مرفوعة لأس w ناقص واحد.
كعدد صحيح موقَّع بالمتمم الثنائي يكون النمط نفسه u عندما تكون البتة الأعلى وزنًا صفرًا، وu ناقص اثنين مرفوعة لأس w عندما تكون تلك البتة العليا مفعَّلة. هذه القاعدة الواحدة تفسّر لماذا تصبح مئتان وخمسة وخمسون في ثمانية بتات سالب واحد، ولماذا تصبح مئة وثمانية وعشرون سالب مئة وثمانية وعشرين (أصغر قيمة سالبة بثمانية بتات)، ولماذا تبقى مئة وسبعة وعشرون موجبة مئة وسبعة وعشرين.
لا يقلب الخوارزمية البتات يدويًا: تقارن u باثنين مرفوعة لأس w ناقص واحد (عتبة نصف النطاق)، ثم تعيد u كما هي أو تطرح المعيار الكامل اثنين مرفوعة لأس w. الصفر يبقى صفرًا دائمًا؛ ونمط الآحاد كلها يصبح سالب واحد عند كل عرض. يجب أن تبقى القيم ضمن نطاق الأعداد الصحيحة الآمنة في JavaScript ليبقى كل رقم دقيقًا عند تسلسل النتيجة كعدد.
تُرفض الطلبات التي لا تدخل نطاق بلا إشارة للعرض المختار — مثل مئتين وستة وخمسين في ثمانية بتات — برسالة واضحة تذكر الحد الأقصى المسموح، بدل اللف إلى الصفر وإخفاء خطأ تحويل قد يثق به الطلاب أو ملاحظات البرمجيات الثابتة بالخطأ.
أين تُثبت حاسبات بلا إشارة إلى موقَّع قيمتها
تقدّم مقررات علوم الحاسوب والتصميم الرقمي المتمم الثنائي عندما يلتقي الطلاب أول مرة بالسجلات الموقَّعة ومفاجأة أن بايتًا كبيرًا بلا إشارة قد يعني عددًا سالبًا صغيرًا تحت تحويل موقَّع؛ ويسرّع وحي موثوق يعيد القيمة الموقَّعة ونمط البتات وعلامة البتة العليا مفاتيح الإجابات وعروض المختبر دون صيغ جداول هشة. تسرد وثائق البرمجيات الثابتة المضمَّنة والبروتوكولات حقول مستشعرات مخزَّنة كتفريغات بلا إشارة في السجلات يجب إعادة قراءتها كإزاحات موقَّعة أو فروقات حرارة بثمانية أو ستة عشر بتًا، فيتحقق المراجعون من بتة الإشارة بنظرة واحدة.
تشرح ملاحظات المترجمات وبيئات التشغيل كيف يحوّل C وJava وRust النوعين uint8 أو uint16 إلى النوع الموقَّع المطابق بإعادة تفسير البتات؛ ويقارن المدرّسون مساعدات التحويل لدى الطلاب بنتيجة موقَّعة مرجعية للصفر ونقطة الوسط وأقصى بلا إشارة والآحاد كلها. يطلب تسخين مقابلات البرمجة والحكام عبر الإنترنت تنفيذ التحويل من بلا إشارة إلى موقَّع أو كشف متى تقلب البتة العليا الإشارة؛ وتحافظ التركيبات المشتركة على اتساق المقيّمين.
حالات الاستخدام
واجبات ومختبرات تنظيم الحاسوب
تحققوا مما يصير إليه أي بايت أو كلمة بلا إشارة تحت تحويل موقَّع بعروض 8/16/32 بت، بما في ذلك منتصف البتة العليا وحالات الآحاد كلها، أمام وحي مشترك واحد.
سجلات البرمجيات الثابتة وتفريغات البروتوكول
أعيدوا تفسير تفريغات السجلات بلا إشارة كفروقات مستشعرات موقَّعة أو إزاحات بعرض ثابت عند مراجعة سجلات سداسية أو عشرية.
تركيبات اختبار لمساعدات التحويل
ولّدوا قيمًا موقَّعة مرجعية وأنماط بتات لاختبارات وحدة لمساعدات التحويل في اللغة دون حساب بواقي المتمم الثنائي يدويًا.
الأسئلة الشائعة
ماذا يعني التحويل من بلا إشارة إلى موقَّع في المتمم الثنائي؟
بعرض ثابت w يكون نفس نمط البتات إما القيمة بلا إشارة u في [0, 2^w−1] أو القيمة الموقَّعة u إذا كانت البتة العليا صفرًا، وu − 2^w إذا كانت البتة العليا مفعَّلة. لا تتغير البتات؛ يتغير التفسير فقط.
لماذا يساوي 255 القيمة −1 في 8 بتات؟
255 هو نمط الآحاد كلها. مع تفعيل البتة العليا يعرّف المتمم الثنائي القراءة الموقَّعة بأنها 255 − 256 = −1. ونمط الآحاد كلها نفسه هو −1 عند كل عرض.
ما عروض البتات المدعومة؟
العروض من 2 إلى 53 شاملة. العروض الشائعة في الصف هي 8 و16 و32.
ماذا يصبح العدد 128 في 8 بتات؟
يصبح −128، وهو أصغر قيمة في 8 بتات، لأن البت الأعلى مضبوط فيُطرح من العدد 256. أما 127 فيبقى 127 لأن البت الأعلى فيه غير مضبوط.
ما المدى الذي يجب أن تقع فيه القيمة؟
من 0 إلى اثنين مرفوعًا إلى عدد البتات ناقص واحد، أي من 0 إلى 255 في 8 بتات. والقيمة 256 في 8 بتات تُرفض برسالة واضحة بدل أن تلتف إلى الصفر وتخفي خطأ.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/unsigned-to-signed \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":255,"bits":8}'const res = await fetch("https://api.kit.forhosting.com/dev/unsigned-to-signed", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 255,
"bits": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/unsigned-to-signed",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 255,
"bits": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/unsigned-to-signed", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":255,"bits":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":255,"bits":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/unsigned-to-signed", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"value": 255,
"bits": 8
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.unsigned_to_signed",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يشارك ودجت المتصفح المجاني وواجهة API دالة نقية واحدة، فلا تختلف عروض الصف عن التركيبات الآلية. تستخدم استدعاءات API الناجحة السعر الأساسي المنشور $0.002 لكل عنصر.
كيف تعمل إعادة التفسير من بلا إشارة إلى موقَّع بالمتمم الثنائي
تستخدم التنفيذ حسابًا صحيحًا دقيقًا بلا تقريب عشري عائم ولا بذور عشوائية ولا ساعة جدارية ولا استدعاءات شبكة، فتُنتج المدخلات المتطابقة دائمًا نفس JSON.
عقد الإدخال وشكل الاستجابة وسلوك الأخطاء
فحوص كلاسيكية: value مئتان وخمسة وخمسون مع ثمانية بتات تعطي signed سالب واحد وbinary آحادًا كلها؛ value مئة وثمانية وعشرون مع ثمانية بتات تعطي signed سالب مئة وثمانية وعشرين؛ وvalue اثنان وأربعون مع ستة عشر بتًا تبقى موجبة اثنين وأربعين بأصفار بادئة. اربطوا نموذج المتصفح المجاني للواجبات وتسخين المقابلات، ثم استدعوا العقد نفسه من السكربتات عند الحاجة إلى تركيبات ذهبية لاختبارات التحويل. إن احتجتم إلى ترميز عدد صحيح موقَّع إلى سلسلة بتات أو فك سلسلة بتات لديكم أصلًا، فاستخدموا صفحة محول متمم ثنائي مخصصة بدل إثقال عقد إعادة التفسير من بلا إشارة إلى موقَّع هذا. أرسلوا عبر POST جسم JSON بحقلين إلزاميين: value وهو عدد صحيح غير سالب لإعادة تفسيره، وbits وهو عرض الكلمة من اثنين إلى ثلاثة وخمسين. قد يصل value كعدد JSON أو سلسلة أرقام مع زائد اختياري في البداية؛ تُقبل الأسماء البديلة u وunsigned وn وnumber. قد يصل bits كعدد أو سلسلة أرقام؛ تُقبل الأسماء البديلة width وbit_width وnbits وw. الحقول الناقصة والسلاسل الفارغة وNaN وInfinity والقيم الكسرية والسالبة والعروض خارج اثنين إلى ثلاثة وخمسين والقيم أكبر من اثنين مرفوعة لأس bits ناقص واحد تفشل بـ invalid_input ولا تُحتسب. عند النجاح يكرر الجسم value وbits ويعيد signed (القراءة بالمتمم الثنائي) وunsigned (نفس الباقي غير السالب) وbinary (حروف bits تمامًا من صفر وواحد، البتة العليا يسارًا) والقيمتين المنطقيتين high_bit_set وis_negative وmin وmax الموقَّعين القانونيين للعرض وunsigned_max وmethod بقيمة twos_complement_reinterpret. تسعير استدعاءات API الناجحة هو الأساس المنشور $0.002 لكل عنصر؛ ولا تستهلك إخفاقات التحقق الرصيد المدفوع مسبقًا.
أين تُثبت حاسبات بلا إشارة إلى موقَّع قيمتها
يريد مؤلفو المناهج الذين يبنون دروسًا تفاعلية نفس شكل JSON في ودجت المتصفح وفي API لمواءمة أوراق العمل دون اتصال والمصححين الآليين عبر الشبكة. ولأن هذه القدرة محرك parse نقي، فإن تسعير API هو الأساس المنشور $0.002 لكل عنصر ناجح ولا يستهلك فشل التحقق الرصيد. عاملوا التحويل ثنائي الاتجاه من عدد موقَّع إلى ثنائي، والتفريغات السداسية فقط، وأنماط بتات الفاصلة العائمة IEEE، وتمديد الإشارة بين عروض غير متساوية كنوايا بحث منفصلة بصفحاتها الخاصة، بدل مدّ حاسبة بلا إشارة إلى موقَّع هذه إلى ما يتجاوز نطاقها الصادق.
أسئلة تقنية
ما النطاق الذي يجب أن يلتزم به value؟
يجب أن يكون value عددًا صحيحًا غير سالب في [0, 2^bits − 1]. القيم خارج نطاق بلا إشارة تفشل بـ invalid_input بدل اللف. ثم تقع النتائج الموقَّعة في [−2^(bits−1), 2^(bits−1)−1].
كم تكلفة حاسبة التحويل من بلا إشارة إلى موقَّع؟
أداة المتصفح مجانية وتعمل محليًا. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ ولا تُحتسب المدخلات غير الصالحة.