ست عشري إلى عشري: جعل القيمة الست عشرية ذات معنى
ما الذي يفعله هذا التحويل
يقرأ قيمة بالأساس 16 ويعيد صياغتها بالأساس 10. والست عشري مريح للآلة ولمن يقارن أنماط البتات، لكن الرقم العشري هو ما تحتاجه للحدود وأحجام البايتات وكل ما يجب أن يحكم عليه إنسان بلمحة. وهذا الاتجاه هو ما تلجئ إليه حين تسلّمك أداة قيمة ثم تتوقف عن الشرح.
أوزان المواضع قوى للعدد 16
قراءةً من الطرف الأدنى، تُضرب كل خانة ست عشرية في 1 ثم 16 ثم 256 ثم 4096 وهكذا. وفي 1E90FF تكون القيمة 1 × 16 أس 5 زائد 14 × 16 أس 4 وهكذا، فتساوي 2003199. وهو المجموع الموزون نفسه المستخدم في كل أساس، ولا تتغير إلا الأوزان، ولهذا تصلح الطريقة ذاتها للثنائي والثماني أيضاً.
جدول تحويل الست عشري إلى العشري
قيم ست عشرية تتكرر فعلاً في التنقيح وعمل الويب مع مقابلاتها العشرية. والأرقام الست عشرية المستديرة هي الأجدر بالحفظ لأنها ترسم حدود البايت والصفحة.
| ست عشري | عشري |
|---|---|
| 0 | 0 |
| 1 | 1 |
| F | 15 |
| 10 | 16 |
| 7F | 127 |
| A5 | 165 |
| FF | 255 |
| 1000 | 4096 |
| FFFF | 65535 |
| DEADBEEF | 3735928559 |
ما الذي يفكّه الناس فعلاً
المهام الثلاث المتكررة هي قراءة قناة لون، وفحص عنوان ذاكرة مقابل حد، وتحويل تجزئة مقتطعة إلى شيء قابل للمقارنة. واللون ألطف مثال: فـ 0x1E90FF يتفكك إلى 30 و144 و255، وهذا يخبرك أن القناة الزرقاء مشبعة والحمراء ضعيفة. والقراءة الثلاثية نفسها تنطبق على أي قيمة محزومة، وهي أسهل بكثير بعد فصل البايتات.
فكّك القيمة قبل تحويلها
اللون ذو الخانات الست أو العنوان الطويل أسهل قراءةً في مجموعات من خانتين، لأن كل مجموعة بايت واحد. وتحويل القيمة كاملة مرة واحدة كافٍ للحصول على جواب، لكن التفكيك أولاً هو ما يُظهر لك أي بايت غير طبيعي — وهذا هو السؤال الحقيقي عادة.
الأسئلة الشائعة
كيف أحوّل من الست عشري إلى العشري يدوياً؟
اضرب كل خانة في قيمة موضعها — 1 و16 و256 و4096 وهكذا من الطرف الأدنى — واجمع النواتج. وتذكّر أن A عشرة وB أحد عشر وهكذا حتى F خمسة عشر. وفي 1E90FF نحصل على 1048576 + 917504 + 36864 + 0 + 240 + 15، أي 2003199.
لماذا تبدو عناوين الذاكرة كأرقام ست عشرية طويلة؟
لأنها مصطفّة طبيعياً على حدود البايت والكلمة، ولأن الخانات الست عشرية تنطبق على تلك الحدود انطباقاً لا تفعله الخانات العشرية. فخانتان ست عشريتان بايت واحد، لذا تصف الخانات الأولى من العنوان صفحته وتصف خاناته الأخيرة موضعه داخل تلك الصفحة.
هل أستطيع لصق قيمة ببادئة 0x؟
نعم، تُعرَف البادئة وتُزال قبل التحويل، فالقيمة المنسوخة من أداة تنقيح أو من ملف شيفرة تعمل دون تعديل. أما البادئة التي لا تطابق الصفحة التي أنت فيها فيُبلَّغ عنها بدل تجاهلها بصمت، ما يمنع تسلل قيمة مقروءة خطأً.
إلى أي حدّ يمكن أن تصل القيمة الست عشرية؟
أربعة وستون بتاً وأكثر بكثير. والقيم في أعلى هذا المدى تتجاوز ما تحمله الحسابات العادية بالفاصلة العائمة بدقة، لذا يجري التحويل بحساب الأعداد الصحيحة الدقيق ويعيد كل خانة صحيحة لا الجواب المقرّب الذي يعطيه جدول بيانات.
هل بادئة التجزئة ذات معنى كرقم؟
حسابياً نعم، وعملياً لا. فتحويل البايتات الأولى من تجزئة إلى عشري مفيد لملاحظة أنماط أو لكتابة مقارنة في سكربت، لكن التجزئة المقتطعة فقدت الخاصية التي جعلت منها تجزئة، فلا تعامل صيغتها العشرية كمعرّف قائم بذاته.