حاسبة طول البت للعدد الصحيح
تحدد حاسبة طول البت هذه أقل عدد من الخانات الثنائية اللازمة لتمثيل عدد صحيح غير سالب.
شغّل الأداة مجانًا
أدخل عددا صحيحا عشريا لتحصل على قيمته المعيارية وطول البت الدقيق معا. تدعم العملية أعدادا أكبر بكثير من الحدود الشائعة ذات 32 بت أو 64 بت، لأن الإدخال يبقى نصا قبل بدء الحساب الصحيح الدقيق. تفيد الأداة في اختيار عرض التخزين، والتحقق من حدود البروتوكولات، ودراسة التمثيل الثنائي، ومراجعة افتراضات الحجم من دون تحويل عدد طويل يدويا.
ما المقصود بطول البت لعدد صحيح
طول البت لعدد صحيح موجب هو موضع أعلى بت مضبوط على 1 عند بدء عد المواضع من واحد. ويمكن وصفه أيضا بأنه عدد خانات التمثيل الثنائي بعد حذف الأصفار البادئة. فعلى سبيل المثال، يقابل العدد العشري 13 العدد الثنائي 1101، ولذلك يبلغ طول البت 4. تحتاج جميع القيم من 8 إلى 15 إلى 4 بتات، أما 16 فيتجاوز حدا يمثل قوة للعدد اثنين ويحتاج إلى 5. الصفر حالة خاصة، إذ لا يحتوي على أي بت مضبوط، وطول البت المتعارف عليه له هو 0. تطبق الحاسبة هذا التعريف مباشرة. تصف النتيجة المقدار غير الموقع فقط؛ فهي لا تضيف بت إشارة، ولا تطبق متمم الاثنين، ولا تقرب العرض إلى حد بايت، ولا تضيف حشوا يفرضه تنسيق ملف. إذا أردت تخزين القيمة أو إرسالها، فأضف بعد ذلك أي بتات للمحاذاة أو الإشارة أو الوسم أو التأطير يطلبها النظام المستهدف.
كيف يحافظ الحساب على الدقة
أرسل العدد الصحيح كسلسلة من الخانات العشرية من دون فواصل أو مسافات أو فاصلة عشرية أو أس أو إشارة موجبة أو سالبة. تمنع معاملة القيمة كنص عند الإدخال فقدان الدقة قبل الحساب. وهذا مهم لأن بيئات برمجية كثيرة تمثل الأعداد العادية بنوع الفاصلة العائمة الذي لا يستطيع تمييز كل عدد صحيح فوق مجاله الآمن. قد تبدو قيمة ما صحيحة على الشاشة، لكنها ربما قربت بالفعل قبل وصولها إلى عملية بتية. تتحقق الحاسبة من سلسلة الخانات كاملة، وتحذف الأصفار البادئة التي لا تؤثر في القيمة، وتحول النص المعياري إلى عدد صحيح دقيق غير محدود الدقة، ثم تزيحه إلى اليمين مرارا حتى لا يبقى أي بت مضبوط. يكون عدد الإزاحات هو طول البت. تتجنب هذه الطريقة الحتمية أخطاء التقريب اللوغاريتمي قرب قوى العدد اثنين الدقيقة. وتضم الاستجابة العدد العشري المعياري كي تتمكن من التحقق من المقدار الذي جرى قياسه.
استخدام النتيجة في الأعمال الهندسية
تظهر فائدة طول البت بوضوح عند الحدود. تعني النتيجة 8 أن المقدار يتسع في بايت واحد غير موقع، بينما تعني 9 أنه يحتاج إلى بايتين على الأقل إذا كان التخزين محاذيا للبايت. تتسع نتيجة 32 في حقل غير موقع عرضه 32 بت، لكن نتيجة 33 لا تتسع فيه. يمكن استخدام الحاسبة لمراجعة أعمدة قواعد البيانات وحقول البروتوكولات الثنائية وشيفرة التسلسل ونطاقات المعرفات وبيانات الضغط ومتجهات الاختبار التعمية. قارن bit_length بسعة الحقل المستهدف بدلا من افتراض وجود تطابق مباشر بين عدد الخانات العشرية والعرض الثنائي. تفسر التنسيقات الموقعة البت الأعلى وفق قواعدها الخاصة، لذلك لا يضمن الملاءمة غير الموقعة ملاءمة موقعة. وللفحوص الدفعية أو فحوص البناء، استدع API وقارن العرض بالحد المطلوب؛ السعر الأساسي هو $0.002. ولأن الخوارزمية لا تستخدم شبكة أو عشوائية أو ساعة أو حالة قابلة للتغيير، فإن الإدخال الصحيح نفسه يعطي النتيجة نفسها دائما.
حالات الاستخدام
اختيار عرض تخزين غير موقع
تحقق مما إذا كان أكبر معرف أو عداد يتسع في حقل غير موقع بعرض 8 أو 16 أو 32 أو 64 بت، أو بعرض مخصص.
التحقق من حدود البروتوكول
تأكد من إمكان ترميز قيمة اختبار عشرية ضمن العدد الثابت من بتات المقدار الذي يخصصه بروتوكول ثنائي.
فحص قيم غير محدودة الدقة
قس أعدادا صحيحة تتجاوز المجال الآمن للأعداد العائمة العادية من دون فقد الخانات الدنيا قبل بدء الحساب.
الأسئلة الشائعة
ما طول البت للصفر؟
طول البت للصفر هو 0 لأنه لا يحتوي على أي بت مضبوط. وهذا هو التعريف القياسي في API الأعداد الصحيحة غير محدودة الدقة.
هل تدخل الأصفار البادئة في العد؟
لا. لا تغير الأصفار البادئة قيمة العدد الصحيح، ولذلك تحذف قبل حساب الطول. وتعيد الاستجابة القيمة المعيارية.
هل يمكن حساب قيم أكبر من 64 بت؟
نعم. أرسل القيمة كسلسلة عشرية ليظل الحساب دقيقا حتى مع أعداد تتجاوز كثيرا أحجام كلمات الآلة الشائعة.
هل تشمل النتيجة بت الإشارة؟
لا. النتيجة هي أقل عرض للمقدار غير الموقع. أما الترميز الموقع وترميز متمم الاثنين فيحتاجان إلى قواعد خاصة بكل تنسيق.
لماذا ينبغي إرسال إدخال API كسلسلة نصية؟
تحفظ السلسلة العشرية كل الخانات. أما القيمة العددية فقد تكون قربت بالفعل إذا تجاوزت مجال الأعداد الصحيحة الآمن في بيئتها.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن أيضا تشغيل الحساب مجانا في المتصفح لأنه حتمي ولا يحتاج إلى اتصال شبكي.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/bit-length-integer \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"integer":"18446744073709551615"}'const res = await fetch("https://api.kit.forhosting.com/dev/bit-length-integer", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"integer": "18446744073709551615"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bit-length-integer",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"integer": "18446744073709551615"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bit-length-integer", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"integer":"18446744073709551615"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"integer":"18446744073709551615"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bit-length-integer", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"integer": "18446744073709551615"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bit_length_integer",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |