ForHosting KIT · أدوات المطورين

حساب فهرس المصفوفة وإزاحة البايت بترتيب الصفوف

في مصفوفة أبعادها 3×4×5 وعناصرها بحجم 8 بايت، يقابل الموضع 1 و2 و3 العنصر رقم 33، بإزاحة 264 بايت وعنوان 4360 انطلاقًا من القاعدة 4096. تظهر كل خطوة وسيطة لتتحقق من حساب المؤشرات أو تفحص مخزنًا مسطحًا. مجاني في متصفحك.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
الأبعاد
3, 4, 5
الفهارس
1, 2, 3
حجم العنصر (بايت)
8
العنوان الأساسي
4,096
تحصل على
الترتيب
row-major
الخطوات (strides)
20, 5, 1
المساهمات
20, 10, 3
الفهرس الخطي
33

تحوّل هذه الحاسبة إحداثيات المصفوفة متعددة الأبعاد إلى الموضع الخطي الوحيد المستخدم في تخطيط الذاكرة المتجاور بترتيب الصفوف وفق أسلوب C. أدخل الأبعاد من المحور الخارجي إلى الداخلي، وفهرساً يبدأ من الصفر لكل محور، وحجم العنصر بالبايت، وعنوان أساس اختياري. تعرض النتيجة خطوة كل محور، ومساهمة كل فهرس، وإزاحة العنصر، وإزاحة البايت، وعنوان البايت النهائي، مما يساعدكم على مراجعة حساب المؤشرات والمخازن المؤقتة المسطحة.

أدخلوا الأبعاد والفهارس بترتيب المحاور نفسه

رتّبوا أحجام الأبعاد من المحور الأبعد إلى المحور الأعمق، كما تظهر تماماً في تعريف المصفوفة أو شكلها. إذا كانت المصفوفة مكوّنة من 3 مستويات و4 صفوف و5 أعمدة، فأدخلوا 3 و4 و5. بعد ذلك أدخلوا فهرساً يبدأ من الصفر لكل بُعد وبالترتيب نفسه.

وعليه تكون إحداثيات المستوى الثاني والصف الثالث والعمود الرابع هي 1 و2 و3. يجب أن يكون كل حجم بُعد عدداً صحيحاً موجباً، وأن يكون كل فهرس صفراً أو أكبر وأصغر حصراً من البُعد المقابل. ترفض الحاسبة اختلاف عدد الأبعاد والإحداثيات الخارجة عن الحدود بدلاً من إنشاء عنوان خارج المصفوفة من دون تنبيه.

يلزم أيضاً حجم العنصر لأن فهرس العنصر وحده لا يحدد موقعاً بالبايت. استخدموا عرض التخزين الفعلي، مثل أربعة بايتات لعدد صحيح شائع من 32 بت أو ثمانية لنوع double. إذا كان موضع بداية المصفوفة معلوماً، فأدخلوا عنوان الأساس غير السالب؛ وإلا فاتركوه صفراً واقرؤوا النتيجة بوصفها إزاحة نسبية من بداية المصفوفة.

افهموا حساب الخطوات في ترتيب الصفوف

في ترتيب الصفوف يُخزّن المحور الأخير بصورة متجاورة، ولذلك فإن الانتقال موضعاً واحداً عليه يقدّم عنصراً واحداً بالضبط، فتكون خطوته 1. أما خطوة كل محور سابق فهي حاصل ضرب جميع الأبعاد الواقعة إلى يمينه. مع الأبعاد 3 في 4 في 5 تكون الخطوات 20 و5 و1: فالانتقال مستوى واحداً يتجاوز أربعة صفوف في كل منها خمسة عناصر، والانتقال صفاً يتجاوز خمسة عناصر، والانتقال عموداً يتجاوز عنصراً واحداً.

تضرب الحاسبة كل فهرس في خطوة محوره وتعرض النواتج بوصفها مساهمات. ينتج الفهرس الخطي الذي يبدأ من الصفر بجمع هذه المساهمات. للإحداثيات 1 و2 و3 تكون العملية 1 في 20، زائد 2 في 5، زائد 3 في 1، فتساوي 33.

تجعل القيم الوسيطة النتيجة قابلة للمراجعة وتكشف أخطاء شائعة مثل عكس الأبعاد أو استعمال معاملات ترتيب الأعمدة. تستخدم جميع العمليات أعداداً صحيحة متحققاً منها؛ فإذا تجاوز ضرب أو جمع مجال الأعداد الصحيحة الآمنة في JavaScript، تُعاد رسالة إدخال بدلاً من عنوان جرى تقريبه.

حوّلوا فهرس العنصر إلى عنوان بالبايت

يعدّ الفهرس الخطي العناصر لا البايتات. للحصول على إزاحة البايت، اضربوا الفهرس الخطي في حجم العنصر. يبدأ العنصر ذو الفهرس 33، عندما يكون حجم العنصر ثمانية بايتات، بعد 264 بايتاً من بداية المصفوفة.

ويكون العنوان النهائي مجموع هذه الإزاحة وعنوان الأساس المدخل؛ فإذا كان الأساس 4096 بدأ العنصر عند العنوان 4360. تفصل الاستجابة بين الفهرس الخطي وإزاحة البايت وعنوان الأساس والعنوان النهائي، حتى تتمكنوا من مقارنة كل مرحلة مع الشفرة المصدرية أو مصحح الأخطاء أو مواصفة تنسيق ثنائي أو حساب مخزن GPU. يُعاد العنوان عدداً صحيحاً عشرياً دقيقاً ضمن المجال الآمن، ولا تصل الأداة إلى الذاكرة ولا تفحص عملية قيد التشغيل.

يفترض الحساب مصفوفة كثيفة ومتجاورة بلا حشو بين العناصر أو الصفوف. أما الصفوف ذات pitch، أو الأبعاد الرئيسية الصريحة، أو العروض المقتطعة، أو الخطوات المخصصة، فتحتاج إلى قيم خطواتها الفعلية.

مراجعة حساب المؤشرات

تحققوا من إزاحات العناصر والبايتات المستخدمة في C وC++ وRust وWebAssembly قبل الوصول إلى مخزن مؤقت مسطح.

تصحيح تسطيح الموترات

قارنوا خطوات ترتيب الصفوف ومساهماته المتوقعة مع مكتبة موترات أو أداة تسلسل أو إجراء لتبادل البيانات.

شرح تخطيط الذاكرة

بيّنوا كيف يساهم كل إحداثي متعدد الأبعاد في موضع متجاور وفي عنوانه النهائي.

هل تبدأ الفهارس من الصفر؟

نعم. يبدأ كل فهرس من الصفر ويجب أن يكون أصغر من حجم البُعد المقابل.

ما المقصود بترتيب الصفوف؟

هو تخطيط متجاور يتغير فيه المحور الأخير للمصفوفة بأسرع وتيرة، كما في مصفوفات C القياسية متعددة الأبعاد.

أي عنوان أساس ينبغي استخدامه؟

استخدموا عنوان البايت الذي تبدأ عنده المصفوفة. اتركوه صفراً إذا كنتم تحتاجون إلى إزاحة نسبية من البداية فقط.

هل تدعم الحاسبة ترتيب الأعمدة؟

لا. ينفّذ الحساب ترتيب الصفوف عمداً، بينما يستخدم تخزين الأعمدة تسلسلاً مختلفاً للخطوات.

هل تراعي حشو الصفوف أو الخطوات المخصصة؟

لا. تفترض عناصر كثيفة ومتجاورة. يحتاج التخزين المزود بـpitch أو الحشو أو النقل أو الاقتطاع إلى الخطوات المادية الفعلية.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev/array-rowmajor-index

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev/array-rowmajor-index \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dimensions":[3,4,5],"indices":[1,2,3],"element_size_bytes":8}'
{
  "dimensions": [
    3,
    4,
    5
  ],
  "indices": [
    1,
    2,
    3
  ],
  "element_size_bytes": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.array_rowmajor_index",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_dimensions32
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

حوّلوا فهرس العنصر إلى عنوان بالبايت

تبلغ كلفة كل طلب API ‏$0.002، ويمكن تنفيذ الحساب الحتمي نفسه في المتصفح للمراجعة السريعة.

ما كلفة الاستخدام عبر API؟

تبلغ كلفة كل طلب $0.002. تنفّذ نسخة المتصفح الحساب الحتمي نفسه محلياً.

اطّلع على توثيق KIT الكامل ←