انتقل إلى المحتوى
mathbehind

محوّل الأنظمة العددية

حوّل أي عدد بين النظام الثنائي والثماني والعشري والست عشري فورًا وفي أي اتجاه.

أرقامك

أرقام فقط، بما يتوافق مع النظام المحدد أدناه (مثلًا 0-1 فقط للنظام الثنائي).

عشري (الأساس 10)

255

ثنائي (الأساس 2)
11111111
ثماني (الأساس 8)
377
ست عشري (الأساس 16)
FF

الأنظمة الثنائية والثمانية والعشرية والست عشرية كلها طرق لكتابة العدد نفسه باستخدام عدد مختلف من رموز الأرقام: الأساس 2 و8 و10 و16 على التوالي. ينتقل المبرمجون بينها باستمرار: فالثنائي يطابق طريقة تخزين الحاسوب للقيمة، والست عشري طريقة مختصرة لكتابة البيانات الثنائية (كل رقم ست عشري يساوي 4 بتات بالضبط)، والعشري هو ما يقرؤه الجميع.

كيف تعمل

أدخل القيمة وحدد النظام المكتوبة به حاليًا، وسيقرؤها المحوّل داخليًا على أنها بذلك النظام.

ثم تُستخرج بقية الأنظمة بالتحويل عبر النظام العشري: تُقرأ القيمة عددًا عاديًا، ثم يُعاد التعبير عنها برموز الأنظمة الثنائي والثماني والست عشري.

يستخدم النظام الست عشري الأرقام 0-9 ثم الحروف A-F للقيم 10-15؛ ويستخدم الثماني الأرقام 0-7 فقط؛ ويستخدم الثنائي 0-1 فقط. وإذا احتوى المدخل على حرف غير صالح للنظام المحدد (مثل «A» بينما النظام «عشري»)، تُقرأ الأرقام الصالحة في البداية فقط، فتحقق من اختيار النظام إذا بدت النتيجة أصغر من المتوقع.

مثال محلول

إدخال 255 مع اختيار «عشري» يتحول إلى 11111111 بالنظام الثنائي، و377 بالثماني، وFF بالست عشري، وهي أكبر قيمة يستطيع بايت واحد (8 بتات) حملها.

أمثلة إضافية

العدد الست عشري D6 يساوي 214 بالعشري، و11010110 بالثنائي، و326 بالثماني. وكل رقم ست عشري يقابل أربعة أرقام ثنائية بالضبط: D هو 1101 و6 هو 0110.

أخطاء شائعة

  • قراءة عدد يبدأ بصفر مثل 0755 على أنه عشري، بينما تعامله بعض اللغات على أنه ثماني.
  • نسيان البادئات: 0x للست عشري، و0b للثنائي، و0o للثماني.
  • الخلط بين القيم الموقَّعة وغير الموقَّعة: 0xFF يساوي 255 دون إشارة، لكنه −1 كبايت موقَّع.
  • تجميع الأرقام الثنائية من اليسار بدلًا من اليمين.

أسئلة يطرحها الناس

لماذا يستخدم النظام الست عشري حروفًا؟

النظام الست عشري أساسه 16، ويحتاج إلى 16 رمزًا مختلفًا. وبعد أن تنتهي الأرقام 0-9 يتابع بالحروف A (10) وB (11) وC (12) وD (13) وE (14) وF (15)، فيكون لكل قيمة من 0 إلى 15 رمز من حرف واحد.

لماذا ينتشر النظام الست عشري في البرمجة مع أن الحاسوب يستخدم الثنائي فعليًا؟

كل رقم ست عشري يمثل 4 بتات بالضبط، فالبايت (8 بتات) يساوي دائمًا رقمين ست عشريين. وهذا يجعله أكثر اختصارًا ووضوحًا لكتابة البيانات الثنائية: فرموز الألوان وعناوين الذاكرة وقيم البايتات تُعرض غالبًا بالست عشري لا بالثنائي الخام لهذا السبب.

هل يحوّل الأعداد السالبة؟

يتعامل هذا المحوّل مع الأعداد الصحيحة غير السالبة. أما الأعداد السالبة في الثنائي والست عشري فتُمثَّل عادةً بالمتمم الثنائي (two's complement)، وهو يعتمد على عرض ثابت بالبتات (8 بتات أو 16 أو 32 وغيرها) لا يفترضه هذا المحوّل العام.

ما أكبر عدد يستطيع معالجته بدقة؟

حتى حد الأعداد الصحيحة الآمن في JavaScript، وهو 2^53 − 1 (نحو 9 كوادريليون)، وهذا يفوق بكثير ما تحتاجه أي عملية تحويل يدوية.

كيف أحوّل من الثنائي إلى العشري يدويًا؟

أعطِ كل رقم قيمة منزلة تتضاعف من اليمين إلى اليسار: 1 و2 و4 و8 وهكذا. اجمع قيم المنازل التي فيها الرقم 1. في 1011 يكون الناتج 8 + 0 + 2 + 1 = 11.