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