جارٍ التحميل…
جارٍ التحميل…
تحدد حجم كل عدد وتقرأ ترتيب البايتات دون قلب ترتيب الرسالة.
لدينا ثمانية بايتات، لكن البرنامج يقرأ كل بايتين معًا كعدد واحد. سنقسمها أولًا، ثم نفهم لماذا يكون البايت الأول أقل وزنًا من الثاني.
| الكلمة في الملف | معناها هنا |
|---|---|
| byte | وحدة من ثمانية بتات؛ كل زوج رموز في التفريغ يمثل بايتًا. |
| 16-bit | عدد يستخدم بايتين، لأن كل بايت ثمانية بتات. |
| hexadecimal | طريقة كتابة للأعداد؛ لا نقرأ أزواجها كأعداد عشرية مباشرة. |
| little-endian | ترتيب يضع البايت الأقل وزنًا أولًا داخل كل عدد. |
| low / high | البايت الأقل وزنًا / البايت الأعلى وزنًا. |
value = low + 256 * highالبايت الثاني يمثل مجموعات من مئتين وستة وخمسين. مثل اختلاف وزن الآحاد والعشرات في العدد العادي، لكن أساس المجموعة هنا مختلف.
Example: low=2, high=1
value = 2 + 256 * 1 = 258برنامج تعليمي مستقل أو تفريغ كامل مع تعريف العمليات؛ يمكن تتبعه يدويًا.
Memory addresses increase left to right. Each token is ONE hexadecimal byte.
DATA:50 00 41 00 54 00 48 00
PROGRAM:
for each consecutive pair (low, high) in DATA:
value = low + 256 * high
append ASCII(value) to result
RULE: unsigned 16-bit LITTLE-ENDIAN; preserve pair order; do not include spaces.
HEX TO DECIMAL:50=80,00=0,41=65,54=84,48=72.
ASCII:80=P,65=A,84=T,72=H.
TARGET: resultهذه أول مرة تتعلم فيها الفكرة؟ افتح الشرح وامشِ معنا من أول سطر إلى الإجابة. سنشرح معنى الكلمات وسبب كل خطوة. بعدها جرّب كتابة الناتج بنفسك.
الشرح يتضمن الإجابة النهائية. قراءته جزء من التعلم، ولا تكمل التحدي تلقائيًا.
قسّم البايتات إلى أزواج متتالية. احسب كل زوج بالقاعدة المعطاة، ثم ابحث عن حرفه في الجدول.
المحاولات غير محدودة ولا تخصم نقاطًا. تُفحص الإجابات على السيرفر، ويُحفظ تقدم التدريب في متصفحك.
الدليل داخل كل تحدٍ يكفي لحله. هذه مراجع إضافية عند رغبتك في فهم المواصفات والأدوات بعمق أكبر.