Menu
العربية

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

حوّل الأرقام بين الثنائي والثماني والعشري والست عشري.

Last updated

بت6
  • ثنائيالأساس 2
  • ثمانيالأساس 8
  • عشريالأساس 10
  • ست عشريالأساس 16

ما هو محوّل أنظمة الأرقام؟

محوّل أنظمة الأرقام يأخذ رقمًا مكتوبًا بنظام عددي معيّن — ثنائي أو ثماني أو عشري أو ست عشري — ويعيد كتابته بأي نظام آخر. المطوّرون يلجؤون إليه عند قراءة أقنعة البتات (bitmasks)، وتنقيح أكواد الألوان، وفك أعلام الحزم في البروتوكولات، والعمل مع مسجّلات العتاد، والتنقّل بين الست عشري والعشري في كل شيء من CSS إلى لغة التجميع إلى التشفير.

القيمة نفسها لا تتغيّر بتغيّر النظام، الذي يتغيّر هو *طريقة التمثيل* فقط. الرقم 255 بالنظام العشري هو 0xFF بالست عشري، و0b11111111 بالثنائي، و0o377 بالثماني. أربع طرق مختلفة لكتابة القيمة ذاتها.

الأدوات الحديثة يجب أن تتعامل مع الأرقام الكبيرة دون فقدان للدقة. دالة parseInt العادية في JavaScript تُقرّب بصمت أي قيمة تتجاوز 2⁵³، وهذا يسبّب أخطاء خفية مع قيم المسجّلات بحجم 64 بت، ومعرّفات IDs، والطوابع الزمنية. المحوّل الجيّد يستخدم BigInt في الخلفية، فيمرّ رقم ست عشري بطول 256 بت ذهابًا وإيابًا دون أي خسارة.

ما الذي ستتعلّمه أثناء التحويل بين الأنظمة

  • النظام الثنائي يستخدم رقمين (0 و1)، الثماني يستخدم 8، العشري 10، والست عشري 16 (من 0 إلى 9 ومن a إلى f).
  • كل خانة ثنائية هي *بت* واحد. 4 بتات = خانة ست عشرية واحدة. 8 بتات = بايت واحد = خانتان ست عشريتان.
  • النظام الست عشري ما هو إلا طريقة مضغوطة لقراءة الثنائي. الرقم 0xCAFE يساوي 1100 1010 1111 1110 بالثنائي — أسهل بكثير على العين.

خطوات التحويل بين الأنظمة

  1. اختر نظام الإدخال

    حدّد ثنائي أو ثماني أو عشري أو ست عشري — حسب النظام الذي يأتي به الرقم لديك.

  2. اكتب القيمة

    حقل الست عشري يقبل ff و0xff على حدٍّ سواء، وحقل الثنائي يقبل 1010 و0b1010. المحوّل يُزيل البادئة تلقائيًا.

  3. اقرأ كل الأنظمة دفعة واحدة

    تظهر التمثيلات الأربعة للرقم نفسه فورًا. انقر على أيٍّ منها لنسخه.

  4. فعّل تجميع الأرقام لتحسين القراءة

    جمّع الثنائي كل 4 بتات (1100 1010 1111 1110)، والست عشري كل خانتين (CA FE). مفيد جدًا عند فحص الـ bitfields ومخرجات الذاكرة.

مرجع سريع لأنظمة الأرقام

قيم مرجعية شائعة عبر الأنظمة الأربعة. توثيق BigInt وقواعد الأعداد الحرفية في MDN يغطّي البنية المستخدمة أدناه.

عشريثنائيثمانيست عشري
0000
1111
81000108
10101012A
16100002010
321000004020
64100000010040
100110010014464
1281000000020080
25511111111377FF
256100000000400100
1024100000000002000400
655351111111111111111177777FFFF

أمثلة على تحويل الأنظمة جرّبها بنفسك

أكواد ألوان RGB

ست عشري
color: #ff8800;
عشري
color: rgb(255, 136, 0);

كل زوج من الخانات الست عشرية يمثّل بايتًا واحدًا (من 0 إلى 255) لقناة لون واحدة. ff تساوي 255، و88 تساوي 136، و00 تساوي 0.

قراءة قناع صلاحيات (bitmask)

عشري

5

ثنائي

0b101

قراءة البتات

البت رقم 0 (قراءة) مرفوع، والبت رقم 2 (تنفيذ) مرفوع، أمّا البت رقم 1 (كتابة) فهو غير مرفوع. أي أن الصلاحيات: قراءة + تنفيذ.

أوضاع ملفات Unix (مثل chmod)، وأعلام المزايا (feature flags)، وحزم البروتوكولات كلّها تُرمّز عدة قيم منطقية كبتات داخل عدد صحيح واحد. عرض الثنائي يجعل ذلك ظاهرًا للعين.

تحويل بدقة BigInt

ست عشري (قيمة ضخمة)

0xFFFFFFFFFFFFFFFF

عشري

18446744073709551615

هذا هو الحد الأقصى لعدد صحيح غير موقّع بحجم 64 بت. دالة parseInt المعتادة في JavaScript ستفقد الدقة هنا، بينما يتعامل BigInt مع القيمة بسلاسة.

أخطاء شائعة في تحويل الأنظمة

  • الخلط بين *الرقم* و*طريقة كتابته*. 0x10 و10 يبدوان متشابهين لكنهما 16 و10 — اكتب البادئة دائمًا داخل الكود لتمييز النظام.
  • قراءة الست عشري من اليسار إلى اليمين ونسيان ترتيب البايتات (endianness) عند فحص مخرجات الذاكرة الخام.
  • استخدام parseInt(big, 16) في JavaScript على قيم تتجاوز 2⁵³. الأفضل هو BigInt('0x' + hex).

أسئلة شائعة حول محوّل أنظمة الأرقام

كيف أحوّل من الثنائي إلى العشري؟
اضرب كل خانة ثنائية في القوة الموافقة للعدد 2 بدءًا من اليمين. مثلًا 1010 تُحسب: 1·8 + 0·4 + 1·2 + 0·1 = 10. أو ألصق الرقم في المحوّل لتحصل على النتيجة فورًا.
كيف أحوّل من العشري إلى الست عشري؟
اقسم العدد العشري على 16 بشكل متكرّر، وسجّل البواقي (من 0 إلى 15، حيث تُكتب الأرقام من 10 إلى 15 بالحروف A إلى F). ثم اقرأ البواقي من الأسفل إلى الأعلى. مثلًا 255 ÷ 16 = 15 والباقي 15FF.
في ماذا يُستخدم النظام الست عشري؟
يُستخدم الست عشري في كل موضع تحتاج فيه إلى صيغة مضغوطة وقابلة للقراءة للثنائي: أكواد الألوان (#ff8800)، عناوين الذاكرة، مخرجات الملفات الثنائية، عناوين MAC، قيم التجزئة (hashes)، ومعظم الأنظمة منخفضة المستوى.
ما الفرق بين الثماني والست عشري؟
الثماني هو نظام الأساس 8 (الأرقام من 0 إلى 7)، أمّا الست عشري فهو نظام الأساس 16 (الأرقام من 0 إلى 9 والحروف A إلى F). الثماني أصبح نادرًا اليوم، لكنه لا يزال يظهر في صلاحيات ملفات Unix (مثل 0755) وفي بعض الأعداد الحرفية في عائلة لغات C.
لماذا تنمو الأعداد الثنائية بهذه السرعة؟
كل خانة جديدة تُضاعِف عدد القيم القابلة للتمثيل. 8 بتات تمثّل 256 قيمة، و16 بت تمثّل 65,536، و32 بت تمثّل أكثر من 4 مليارات. لهذا السبب تستطيع أقنعة البتات تخزين كمّ كبير من المعاني داخل عدد صغير.

اعرف المزيد

أدوات مطورين أخرى

تعلّم البرمجة مع Coddy

ابدأ الآن