إعادة كتابة نفس القيمة عبر الثنائي والثماني والعشري والسادس عشري
أساس الرقم (أو “الجذر”) هو عدد الأرقام المميزة التي يستخدمها نظام عد قبل الانتقال إلى القيمة المكانية التالية — يستخدم العشري 10 (0-9)، ويستخدم الثنائي 2 (0-1)، ويستخدم الثماني 8 (0-7)، ويستخدم السادس عشري 16 (0-9 ثم A-F). أدخل عددًا صحيحًا بأي من هذه الأسس الأربعة، وستُظهر هذه الحاسبة نفس القيمة مكتوبة بجميع الأسس الأربعة في آنٍ واحد.
النظام الثنائي هو كيفية تمثيل الحواسيب لكل قيمة داخليًا (كل رقم هو “بت” واحد)؛ والنظام السادس عشري هو اختصار شائع للثنائي في البرمجة (كل رقم سادس عشري يمثل بالضبط 4 أرقام ثنائية، لذا فهو أكثر إيجازًا بكثير للقراءة والكتابة)؛ ويظهر النظام الثماني في أذونات ملفات يونكس القديمة وبعض السياقات منخفضة المستوى. النظام العشري هو ببساطة النظام العشري اليومي.
المعادلة
يعمل كل نظام عد موضعي بنفس الطريقة: يُضرب كل رقم في الأساس مرفوعًا إلى قوة قيمته المكانية، ثم تُجمع النتائج:
حيث هو الرقم في الموضع (بدءًا من 0 عند الرقم الأقصى يمينًا). التحويل إلى أساس مختلف يقسم القيمة العشرية بشكل متكرر على الأساس الجديد، مسجّلًا كل باقٍ — وهو عكس عملية الجمع أعلاه.
مثال محلول
تحويل الرقم الثنائي 11111111 إلى الأسس الثلاثة الأخرى:
- اقرأ من اليمين إلى اليسار، كل
1يساهم بقيمته المكانية: . - عشري: 255.
- ثماني: بقسمة 255 على 8 بشكل متكرر (255 ÷ 8 = 31 والباقي 7، 31 ÷ 8 = 3 والباقي 7، 3 ÷ 8 = 0 والباقي 3) تُقرأ البواقي من الأسفل إلى الأعلى كـ 377.
- سادس عشري: 255 ÷ 16 = 15 والباقي 15، 15 ÷ 16 = 0 والباقي 15 — كلا الباقيين هو 15 (F بالسادس عشري)، مما يعطي FF.
العوامل الرئيسية التي يجب مراعاتها
- يمكن للبايت الواحد (8 بتات) أن يمثل بالضبط 256 قيمة مميزة — من 0 إلى 255 بالنظام العشري، أو من 00 إلى FF بالنظام السادس عشري. هذا هو بالضبط سبب كون 255/FF قيمة مرجعية شائعة جدًا في علوم الحاسوب — إنها القيمة القصوى التي يمكن أن يحملها بايت واحد، وهو ما يظهر في كل مكان بدءًا من قنوات الألوان RGB (0-255 لكل قناة) وصولًا إلى الشبكات وتنسيقات الملفات.
- كان النظام الثماني تاريخيًا أكثر شيوعًا مما هو عليه اليوم، ويعود ذلك إلى حد كبير إلى أحجام كلمات الحواسيب القديمة. يتوافق النظام الثماني (أساس 8) بشكل نظيف مع مجموعات من 3 أرقام ثنائية، وهو ما ناسب الحواسيب المبنية على أحجام كلمات قابلة للقسمة على 3 بتات — تحوّلت الحوسبة الحديثة إلى حد كبير إلى النظام السادس عشري (الذي يتوافق مع مجموعات من 4 بتات) لأن معظم الأجهزة الحديثة تستخدم أحجام كلمات قابلة للقسمة على 4 و8، مع أن النظام الثماني ما زال يظهر في سياقات محددة مثل صيغة أذونات ملفات يونكس (مثل chmod 755).
- من الأخطاء الشائعة لدى المبرمجين الخلط بين أساس الرقم اعتمادًا على السياق وحده. الأرقام “10” تعني قيمًا مختلفة تمامًا حسب الأساس — 10 بالعشري، و2 بالثنائي، و8 بالثماني، و16 بالسادس عشري — وهذا هو سبب اشتراط لغات البرمجة عادةً بادئة صريحة (مثل 0x للسادس عشري أو 0b للثنائي) لإزالة أي غموض حول الأساس المقصود.
- يمكن نظريًا تمثيل أي عدد صحيح بأي أساس، وليس فقط هذه الأسس الأربعة. الثنائي والثماني والعشري والسادس عشري هي ببساطة الأسس الأربعة الأكثر استخدامًا في العالم الحقيقي في الحوسبة والرياضيات اليومية — نفس مبدأ العد الموضعي الذي تستخدمه هذه الحاسبة يمتد إلى أي أساس، مثل الأساس 3 أو الأساس 20 أو الأساس 60 (أساس تقسيم الوقت والزوايا تقليديًا).
أخطاء شائعة
- قراءة رقم مختلط الأساس بدون بادئة على أنه عشري افتراضيًا. “10” تعني عشرة بالعشري لكنها تعني اثنين فقط بالثنائي — تحقق دائمًا (أو حدد) بأي أساس كُتب الرقم قبل إجراء عمليات حسابية عليه.
- افتراض أن الأصفار البادئة تغيّر القيمة. تمامًا كما في العشري،
0011بالثنائي هي نفس قيمة11— الأصفار البادئة مهمة فقط للتنسيق ذي العرض الثابت (مثل عرض بايت كامل)، وليس للقيمة الفعلية للرقم. - نسيان أن أرقام السادس عشري الأكبر من 9 تستخدم حروفًا وليس أرقامًا مكونة من رقمين. يُكتب
الرقم عشرة بالسادس عشري كـ
A، وليس10— كتابة10بالسادس عشري تعني في الواقع ستة عشر بالعشري، وهو مصدر شائع لأخطاء كبيرة في القيمة. - محاولة تحويل رقم سالب مباشرة. كما تذكر الأسئلة الشائعة أعلاه، تعتمد القيم السالبة بالثنائي/ السادس عشري على عرض بت محدد واتفاقية مكمل الاثنين — لا يوجد تحويل واحد لا لبس فيه كما هو الحال مع الأعداد الصحيحة غير السالبة.
معلومات مفيدة
- هل تعمل مع عناوين شبكة بدلاً من أرقام عشوائية؟ حاسبة الشبكة الفرعية IP يطبق نفس العلاقة الثنائية/العشرية خصيصًا على عناوين IPv4.
- هل تحتاج إلى أرقام عشرية كبيرة جدًا أو صغيرة جدًا بشكل مضغوط؟ حاسبة الترميز العلمي يتعامل مع هذا النوع من التحويل بدلاً من ذلك.
- هل تتساءل عن نظام ترقيم موضعي قديم مختلف تمامًا؟ حاسبة الأرقام الرومانية يحوّل من وإلى الأرقام الرومانية، التي تستخدم نهجًا مختلفًا تمامًا (غير موضعي).