عشري إلى ست عشري: الاختزال الذي يقرأه المبرمج فعلاً
ما الذي يفعله هذا التحويل
يكتب رقماً بالأساس 10 في الأساس 16 باستخدام ست عشرة خانة من 0 إلى 9 ومن A إلى F. والست عشري ليس نوعاً آخر من الأرقام، بل طريقة أقصر لكتابة البتات ذاتها: فالخانة الست عشرية الواحدة تغطي أربع بتات بالضبط، لذا يشغل رقم 32 بتاً ثمانية محارف بدل اثنين وثلاثين. وهذا الضغط هو سبب بقاء هذا التدوين أصلاً.
من أين جاءت الحروف من A إلى F
يحتاج الأساس 16 إلى ستة عشر رمزاً مستقلاً، والمتداول منها عشرة فقط، فتسدّ الحروف الستة الأولى من الأبجدية الفراغ: A عشرة، وB أحد عشر، وهكذا حتى F خمسة عشر. وهذه الحروف خانات حقيقية لا اختزال، ولهذا تعني FF خمسة عشر في خانة الست عشريات زائد خمسة عشر — أي 255 — ولا علاقة لها إطلاقاً بعبارة خمسة عشر.
جدول تحويل العشري إلى الست عشري
القيم العشرية التي تتكرر باستمرار في العمل بالألوان والعنونة وأقنعة الأذونات مع صيغتها الست عشرية. والقيم مثل 255 و65535 ترسم حدود الحقول ذات البايت الواحد والبايتين.
| عشري | ست عشري |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 7 | 7 |
| 8 | 8 |
| 10 | A |
| 15 | F |
| 16 | 10 |
| 31 | 1F |
| 64 | 40 |
| 100 | 64 |
| 127 | 7F |
| 200 | C8 |
| 255 | FF |
| 1000 | 3E8 |
رموز الألوان وعناوين الذاكرة
لون ويب مثل #1E90FF هو ثلاثة بايتات — أحمر وأخضر وأزرق — مكتوبة كست خانات ست عشرية، وكل زوج منها قناة واحدة من 0 إلى 255. والتدوين نفسه يظهر في عناوين الذاكرة، حيث يكون 0x7FFE أسهل بكثير في المقارنة بالعين من صيغته العشرية. وفي الحالتين يفوز الست عشري لأن خاناته تنطبق على حدود البايتات: رقمان، بايت واحد، دائماً.
ضبط حالة الحروف
يطبع هذا المحوّل الحروف كبيرة، مطابقةً للعرف في قوائم لغة C وأوراق البيانات ومعظم الوثائق. أما الحروف الصغيرة فصحيحة تماماً وتظهر في عناوين URL وبعض الصيغ البرمجية، ويقبل حقل الإدخال الحالتين. وخلط الحالتين في قيمة واحدة جائز لكنه سيئ القراءة، فاختر واحدة والتزم بها.
الأسئلة الشائعة
كيف أحوّل من العشري إلى الست عشري دون آلة حاسبة؟
اقسم على 16 وسجّل الباقي كخانة ست عشرية، ثم أعد الكرّة مع الناتج حتى يصل إلى الصفر، واقرأ الخانات من الأخير إلى الأول. وفي 255: 255 ÷ 16 = 15 والباقي 15، ثم 15 ÷ 16 = 0 والباقي 15، فيكون الجواب FF. والبواقي فوق التسعة تُكتب بالحروف من A إلى F.
لماذا يُستخدم الست عشري بدل الثنائي؟
لأن أربع بتات تقابل تماماً خانة ست عشرية واحدة، فيصبح التحويل استبدالاً مباشراً بلا أي حساب. فالست عشري تهجئة مختصرة ومقروءة للبتات ذاتها، ولهذا تلتجئ إليه أدوات التنقيح والمفكّكات وأدوات الشبكات كلها.
ماذا تعني البادئة 0x؟
هي علامة مستخدمة في لغة C ولغات كثيرة غيرها للدلالة على أن الأرقام التالية ست عشرية، فـ 0x20 اثنان وثلاثون لا عشرون. ويقبل هذا المحوّل بادئة 0x في الإدخال ولا يحتاجها في الإخراج، لأن الأساس واضح من الصفحة التي أنت فيها.
كم خانة ست عشرية يحتاج رقم 64 بتاً؟
ست عشرة خانة، وهذا المحوّل يتعامل معها بدقة. فرقم 64 بتاً قد يتجاوز ما تمثله الحسابات بالفاصلة العائمة تمثيلاً دقيقاً، لذا فإن أداة تستخدم الأعداد العادية ستعيد جواباً خاطئاً يبدو معقولاً لقيمة مثل FFFFFFFFFFFFFFFF. أما العمل بأعداد صحيحة دقيقة فيتجنب ذلك تماماً.
هل تفرّق الأرقام الست عشرية بين الحروف الكبيرة والصغيرة؟
لا. FF وff قيمتان متطابقتان، ويقبل حقل الإدخال أيّاً منهما. أما الإخراج فبحروف كبيرة حسب العرف السائد في معظم الشيفرات والوثائق والأدلة الفنية.