أنظمة الترقيم في الشبكات — الثنائي والعشري والسادس عشر من الصفر

تعرف على أنظمة الترقيم في الشبكات: التحويل بين Binary وDecimal وHexadecimal مع تمارين محلولة وجداول مرجعية وشرح ASCII وUnicode.
Cybersecurity Arab

الإنسان يعدّ بالعشرة — لأن لديه عشرة أصابع. الحاسوب يعدّ باثنين — لأن دوائره الإلكترونية تعرف حالتين فقط: تيار يجري (1) أو لا يجري (0). جهد مرتفع أو منخفض. مفتاح مفتوح أو مغلق. هذا النظام ذو الحالتين يُسمى النظام الثنائي (Binary) وهو اللغة الأم لكل جهاز حاسوبي من معالج الجيب إلى عملاق مراكز البيانات.

أنظمة الترقيم في الشبكات — الثنائي والعشري والسادس عشر من الصفر
أنظمة الترقيم في الشبكات — الثنائي والعشري والسادس عشر من الصفر

لكن الثنائي صعب على الإنسان — قراءة 11000000101010000000000100000001 أصعب بكثير من قراءة 192.168.1.1. لهذا طوّر علماء الحاسوب أنظمة ترقيم وسيطة تُسهّل التعامل البشري مع بيانات الآلة دون فقدان الدقة: النظام العشري الذي نعرفه، والنظام السداسي عشري (Hexadecimal) الذي يُمثّل 4 بتات في رمز واحد.

جدول المحتويات

في هذا المقال — الأخير في سلسلة الطبقة الفيزيائية — سنُتقن التحويل بين هذه الأنظمة بفهم حقيقي لا حفظاً أعمى، ونربطها بتطبيقات شبكية ملموسة: عناوين IP وMAC وترميزات الحروف ASCII وUnicode.

هذا المقال للجميع! لا يتطلب هذا المقال خلفية رياضية متقدمة — فقط الصبر والتدرب. المفاهيم بسيطة والأمثلة متدرجة. بنهاية المقال ستتمكن من تحويل أي عدد بين الأنظمة الأربعة بثقة تامة.

لماذا نحتاج أنظمة ترقيم متعددة؟

قبل أن نبدأ التحويلات، نفهم لماذا كل نظام موجود وأين يُستخدَم:

النظام الأساس الرموز المستخدمة يُستخدَم في
ثنائي (Binary) 2 0، 1 داخل الحاسوب، الدوائر الإلكترونية، الإرسال الرقمي
ثماني (Octal) 8 0، 1، 2، 3، 4، 5، 6، 7 صلاحيات Unix/Linux، بعض بروتوكولات قديمة
عشري (Decimal) 10 0 إلى 9 التعامل البشري اليومي، عناوين IPv4 المعروضة
سادس عشري (Hexadecimal) 16 0 إلى 9، A، B، C، D، E، F عناوين MAC، IPv6، ألوان HTML، كودات الخطأ

السادس عشري (Hex) شائع جداً في الشبكات لسبب هندسي بسيط: كل رمز Hex واحد يُمثّل 4 بتات بالضبط (nibble). هذا يعني أن بايتاً كاملاً (8 بتات) يُمثَّل برمزَين Hex فقط. عنوان MAC مثلاً هو 48 بتاً — يُكتَب كـ 12 رمزاً Hex بدلاً من 48 رقماً ثنائياً.

الجدول المرجعي: Hex ↔ Binary ↔ Decimal

هذا الجدول هو مرجعك الأساسي — احفظ الصف من 0 إلى F وستُتقن أسرع أسلوب للتحويل بين Hex وBinary:

عشري (Decimal) سداسي عشري (Hex) ثنائي (Binary) — 4 بتات
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111
الطريقة السريعة! بمجرد حفظ هذا الجدول، التحويل بين Hex وBinary يصبح فورياً — كل رمز Hex تُستبدَل بـ 4 بتات مباشرة. C8 مثلاً = C(1100) + 8(1000) = 11001000 في ثانية واحدة.

التحويل من عشري إلى ثنائي

الأسلوب: القسمة المتكررة على 2 مع حفظ الباقي. نقرأ البواقي من الأسفل للأعلى.

الفكرة الأساسية

كل عدد عشري يمكن تمثيله كمجموع لقوى العدد 2:

قوة 2 2⁷ 2⁶ 2⁵ 2⁴ 2⁰
القيمة 128 64 32 16 8 4 2 1

مثال محلول: 56 → ثنائي (من المقرر)

الطريقة الأولى — القسمة المتكررة:

العدد ÷ 2 الناتج الباقي (البت)
56÷2280 ← (LSB)
28÷2140
14÷270
7÷231
3÷211
1÷201 ← (MSB)

نقرأ البواقي من الأسفل للأعلى (من MSB لـ LSB):

النتيجة: 56 (عشري) = 111000 (ثنائي)

التحقق (الطريقة الثانية — مجموع قوى 2):

111000 = 1×2⁵ + 1×2⁴ + 1×2³ + 0×2² + 0×2¹ + 0×2⁰

= 32 + 16 + 8 + 0 + 0 + 0 = 56 ✓

مثال محلول: 192 → ثنائي (مهم للشبكات!)

لماذا 192؟ لأن العنوان 192.168.1.1 الذي يراه الجميع يجب أن يُحوَّل لثنائي داخل الحاسوب.

العدد ÷ 2 الناتج الباقي
192÷2960
96÷2480
48÷2240
24÷2120
12÷260
6÷230
3÷211
1÷201
النتيجة: 192 = 11000000 (8 بتات — بايت كامل)
وحدة البايت! العناوين في الشبكات تعمل دائماً على وحدات البايت (8 بتات). عنوان IPv4 مثلاً هو 4 بايت = 32 بت. لذا حين تُحوّل أي عدد في سياق الشبكات يجب أن يكون الناتج الثنائي 8 بتات — اكمل الأصفار على اليسار إذا كان الناتج أقل.

التحويل من ثنائي إلى عشري

الأسلوب: ضرب كل بت في قوة 2 المقابلة له ثم الجمع. نبدأ من اليمين (2⁰) ونتحرك يساراً (2¹، 2²...).

مثال محلول: 11001100 → عشري (من المقرر)

البت 1 1 0 0 1 1 0 0
قوة 2 2⁷=128 2⁶=64 2⁵=32 2⁴=16 2³=8 2²=4 2¹=2 2⁰=1
الحساب 1×128 1×64 0×32 0×16 1×8 1×4 0×2 0×1
القيمة 128 64 0 0 8 4 0 0

المجموع = 128 + 64 + 0 + 0 + 8 + 4 + 0 + 0

النتيجة: 11001100 (ثنائي) = 204 (عشري)

مثال إضافي: 10101010 → عشري (عنوان شائع في الشبكات)

10101010 = 128+0+32+0+8+0+2+0 = 170

هذا العنوان مألوف في قناع الشبكة الكلاسيكي 255.255.255.0 — حيث 11111111 = 255.

التحويل من سادس عشري إلى عشري

الأسلوب: ضرب كل رمز في قوة 16 المقابلة ثم الجمع. نبدأ من اليمين (16⁰) ونتحرك يساراً.

قيمة الرقم الـ Hex = (رمز الموضع الأيمن × 16⁰) + (رمز الموضع التالي × 16¹) + ...

قاعدة التحويل من Hex إلى Decimal

مثال محلول: 9D → عشري (من المقرر)

أولاً نُحوّل الرموز: 9 = 9، D = 13

الرمز 9 D
القيمة العشرية 9 13
قوة 16 16¹ = 16 16⁰ = 1
الحساب 9 × 16 = 144 13 × 1 = 13

المجموع = 144 + 13

النتيجة: 9D (Hex) = 157 (Decimal)

مثال إضافي: FF → عشري

F = 15، F = 15

= (15 × 16) + (15 × 1) = 240 + 15 = 255

هذا لماذا 255.255.255.255 هو عنوان Broadcast — FF.FF.FF.FF بالـ Hex، وكل بايت به كل البتات تساوي 1 (11111111).

مثال ثلاثي الأرقام: A2F → عشري

A=10، 2=2، F=15

= (10 × 16²) + (2 × 16¹) + (15 × 16⁰)

= (10 × 256) + (2 × 16) + (15 × 1)

= 2560 + 32 + 15 = 2607

التحويل من سادس عشري إلى ثنائي

هذا هو أسهل التحويلات وأسرعها — لأن كل رمز Hex يُقابل 4 بتات بالضبط. ما عليك سوى استبدال كل رمز بمقابله الثنائي من الجدول المرجعي مباشرة.

كل رمز Hex = 4 بتات ثنائية. استبدل كل رمز بـ 4 بتاته وأنت انتهيت.

القاعدة الذهبية في Hex ↔ Binary

مثال محلول: C8 → ثنائي (من المقرر)

C = 12 (عشري) = 1100 (ثنائي)

8 = 8 (عشري) = 1000 (ثنائي)

رمز Hex C 8
ثنائي (4 بتات) 1100 1000
النتيجة: C8 (Hex) = 11001000 (Binary)

مثال: عنوان MAC الجزئي A3:2F → ثنائي

A = 1010، 3 = 0011، 2 = 0010، F = 1111

النتيجة: 1010 0011 : 0010 1111

هكذا يُمثَّل عنوان MAC داخل الذاكرة والبروتوكولات الشبكية.

العكس: ثنائي → سادس عشري

العملية معكوسة — اقسم البتات إلى مجموعات من 4 بدءاً من اليمين، ثم حوّل كل مجموعة لرمز Hex:

مثال: 10110101 → نقسم: 1011 | 0101 → B | 5 → B5 (Hex)

احذر الصفر الأمامي! إذا كانت المجموعة الأخيرة (اليسرى) أقل من 4 بتات، أكمل بأصفار على اليسار. مثال: 10111 → 0001 | 0111 → 1 | 7 → 17 (Hex). الصفر أمام 0001 ضروري لاستيفاء المجموعة الأربعة.

الطريقة السريعة: التحويل العشري → ثنائي بجدول القوى

للتحويل السريع خاصة في الشبكات حيث الأعداد دائماً بين 0 و255، جدول قوى 2 يُسرّع العملية كثيراً:

  1. ضع جدول القوى أمامك: 128، 64، 32، 16، 8، 4، 2، 1
  2. ابدأ بأكبر قوة لا تتجاوز العدد — ضع 1 تحتها واطرحها
  3. انتقل للقوة التالية — إذا أمكن طرحها ضع 1، وإلا ضع 0
  4. كرر حتى تصل للباقي صفر

مثال: 200 → ثنائي بالطريقة السريعة

128 64 32 16 8 4 2 1
1 (200-128=72) 1 (72-64=8) 0 (32>8) 0 (16>8) 1 (8-8=0) 0 0 0
النتيجة: 200 = 11001000 التحقق: 128 + 64 + 8 = 200 ✓
ملاحظة شبكية مهمة! 255 = 11111111 (كل البتات واحد). 0 = 00000000 (كل البتات صفر). هذان العددان الطرفيان يُستخدَمان كثيراً في قناع الشبكة (Subnet Mask) — 255 يعني "هذا الجزء ثابت للشبكة" و0 يعني "هذا الجزء للأجهزة".

ASCII وUnicode: كيف تُخزَّن الحروف؟

الحاسوب يفهم الأرقام فقط. إذن كيف يتعامل مع الحروف والرموز؟ الجواب: بإعطاء كل حرف رقماً محدداً متفقاً عليه عالمياً.

ASCII — الترميز الأصلي

ASCII (American Standard Code for Information Interchange) وضع عام 1963 جدولاً يُعطي كل حرف وعلامة ترقيم ورمز تحكم رقماً بين 0 و127 (7 بتات). مثلاً:

الحرف قيمة ASCII (عشري) ثنائي (8 بتات) Hex
A (حرف كبير)650100000141
a (حرف صغير)970110000161
B660100001042
Z90010110105A
0 (الصفر المكتوب)480011000030
9570011100139
! 330010000121
مسافة (Space)320010000020

لاحظ: A = 65 وa = 97. الفرق 32 — وهو نفس قيمة بت واحد (2⁵). تغيير البت الخامس يُحوّل بين الحرف الكبير والصغير — خدعة تُستخدم في تحسين الأداء في بعض البرامج.

صورة توضيحية جزء من جدول ASCII يُظهر الأرقام 32-126 مع الحروف المقابلة
صورة توضيحية جزء من جدول ASCII يُظهر الأرقام 32-126 مع الحروف المقابلة
0 ≠ '0' ! الرقم 0 (صفر رياضي) يُخزَّن كـ 00000000 في الثنائي. لكن الحرف '0' (الذي تكتبه على لوحة المفاتيح) قيمته ASCII هي 48 = 00110000. هذا الفرق مصدر أخطاء برمجية شهيرة — الخلط بين الرقم والحرف.

ASCII الموسّع — 256 رمزاً

ASCII الأصلي 7 بتات يُغطي 128 رمزاً فقط — كافٍ للإنجليزية لكن غير كافٍ للغات الأخرى. الحل الأول كان ASCII الموسّع (8 بتات، 256 رمزاً) الذي أضاف حروفاً أوروبية. لكن المشكلة: صفحات الكود (Code Pages) المختلفة أعطت نفس الأرقام (128-255) حروفاً مختلفة في كل لغة — فظهرت مشاكل التوافق الشهيرة عند تبادل الملفات بين اللغات.

Unicode — الحل الشامل للعالم

Unicode جاء لحل المشكلة جذرياً: نظام ترميز موحد يُعطي كل حرف وكل رمز في كل لغات العالم رقماً فريداً عالمياً. يدعم الآن أكثر من 140,000 رمز من أكثر من 150 نظام كتابة.

الترميز الأشيع لـ Unicode هو UTF-8:

  • يُشفّر الحروف الإنجليزية والرموز الأساسية بـ بايت واحد (متوافق مع ASCII)
  • الحروف العربية تحتاج 2 بايت
  • بعض الرموز والإيموجي تحتاج 4 بايت
الحرف Unicode Codepoint UTF-8 (Hex) عدد البايتات
AU+0041411 بايت
éU+00E9C3 A92 بايت
ع (عين عربية)U+0639D8 B92 بايت
😀 (إيموجي)U+1F600F0 9F 98 804 بايت
لماذا UTF-8 هو الأشيع؟ UTF-8 ذكي: يستخدم بايتاً واحداً للحروف الشائعة (إنجليزي، أرقام) وبايتات أكثر للحروف النادرة. هذا يُقلل حجم الملفات الإنجليزية بينما يدعم كل لغات العالم. اليوم أكثر من 98% من صفحات الويب تستخدم UTF-8.

أهمية أنظمة الترقيم في الشبكات

هذه المفاهيم ليست أكاديمية بحتة — هي حاضرة في كل عنوان شبكي وكل أمر تُدخله على الـ Switch أو الـ Router.

عنوان IPv4 والثنائي

عنوان IPv4 هو 32 بت مُقسَّمة إلى 4 أجزاء بالعشري. كل جزء بايت (8 بتات) يتراوح بين 0 و255:

الشكل العشري 192 . 168 . 1 . 1
الشكل الثنائي 11000000 10101000 00000001 00000001

قناع الشبكة 255.255.255.0 يُصبح:

11111111 . 11111111 . 11111111 . 00000000

الـ AND الثنائي (Bitwise AND) بين العنوان والقناع يُعطي عنوان الشبكة — وهذا ما يفعله الـ Router داخلياً لتحديد الشبكة المستهدفة.

عنوان MAC والسداسي عشري

عنوان MAC هو 48 بتاً مُمثَّلاً كـ 6 بايتات بالـ Hex:

00:1A:2B:3C:4D:5E

كل زوج Hex = بايت = 8 بتات. 6 أزواج × 8 بتات = 48 بتاً. بالـ Hex يُقرأ بسهولة — بالثنائي كان سيكون 48 رقماً!

الجزء الأول (3 بايت = OUI) يُحدد الشركة المُصنّعة. الجزء الثاني (3 بايت) رقم فريد للجهاز:

00:1A:2B 3C:4D:5E
OUI — رمز الشركة المُصنّعة رقم الجهاز الفريد

عنوان IPv6 والسداسي عشري

IPv6 هو 128 بتاً — مكتوباً كـ 8 مجموعات من 4 أرقام Hex مفصولة بنقطتين:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

كل مجموعة 4 رموز Hex = 16 بتاً. 8 مجموعات × 16 بتاً = 128 بتاً. بدون Hex كان سيكون 128 رقماً ثنائياً — مستحيل التعامل معه يدوياً.

الأمن السيبراني وأنظمة الترقيم

في تحليل الثغرات والشيفرة الخبيثة، قراءة Hex ضرورية:

  • Shellcode: كود هجوم يُكتَب بالـ Hex مثل: \x90\x90\xEB\x0A — القدرة على قراءته مباشرة ميزة أساسية في تحليل البرمجيات الخبيثة.
  • Packet Analysis: أدوات مثل Wireshark تُعرض محتوى الحزم بالـ Hex — قراءتها تكشف البروتوكول والبيانات المخفية.
  • Hash Values: MD5 وSHA-256 تُعطي نتيجة بالـ Hex — مقارنتها تكشف التلاعب بالملفات.
  • كلمات المرور المُشفّرة: تُخزَّن كـ Hash بالـ Hex في قواعد البيانات.
مهارة أساسية لمتخصص الأمن! قراءة وتحليل Hex بطلاقة هي مهارة لا غنى عنها في: تحليل البرمجيات الخبيثة (Malware Analysis)، الهندسة العكسية (Reverse Engineering)، تحليل الشبكات (Packet Analysis)، والتحقيقات الجنائية الرقمية (Digital Forensics). استثمر الوقت في إتقانها.

تمارين تطبيقية للتدريب الذاتي

الإتقان يأتي بالتكرار. هذه تمارين متدرجة — حاول حلّها بنفسك قبل الاطلاع على الجواب.

المجموعة الأولى: عشري → ثنائي

التمارين والأجوبة

1. حوّل 128 إلى ثنائي: الجواب: 10000000 (128 = 2⁷)

2. حوّل 255 إلى ثنائي: الجواب: 11111111 (أقصى قيمة لبايت)

3. حوّل 172 إلى ثنائي: الجواب: 10101100 (128+32+8+4=172)

4. حوّل 10 إلى ثنائي: الجواب: 00001010 (8+2=10)

المجموعة الثانية: ثنائي → عشري

التمارين والأجوبة

1. حوّل 10000000 إلى عشري: الجواب: 128

2. حوّل 11111111 إلى عشري: الجواب: 255

3. حوّل 01010101 إلى عشري: الجواب: 85 (64+16+4+1)

4. حوّل 11000000 إلى عشري: الجواب: 192 (أول رقم في عنوان 192.168.x.x)

المجموعة الثالثة: Hex → عشري وثنائي

التمارين والأجوبة

1. حوّل FF إلى عشري: الجواب: 255 (15×16 + 15×1)

2. حوّل 1A إلى عشري: الجواب: 26 (1×16 + 10×1)

3. حوّل AC إلى ثنائي: الجواب: 10101100 (A=1010، C=1100)

4. حوّل 2F إلى ثنائي: الجواب: 00101111 (2=0010، F=1111)

تحدي الشبكات: حوّل عنوان IP كاملاً

التحدي: 192.168.10.1

192 = 11000000

168 = 10101000

10 = 00001010

1 = 00000001

العنوان كاملاً بالثنائي: 11000000.10101000.00001010.00000001

خلاصة

أنظمة الترقيم — الثنائي والعشري والسداسي عشري — هي لغة الحواسيب والشبكات. إتقانها لا يعني حفظ خوارزميات، بل فهم لماذا كل نظام موجود وكيف يُخدم الهدف المُصمَّم له.

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

في عالم الشبكات: كل عنوان IP يُعالَج ثنائياً، كل عنوان MAC ومعظم بروتوكولات الشبكة تُكتَب سداسياً، وكل رمز تكتبه في بريدك الإلكتروني يُخزَّن كرقم ASCII أو Unicode ثم يُرسَل ثنائياً عبر الوسيط.

وبهذا المقال تكتمل سلسلة الطبقة الفيزيائية (الفصل الثاني) من مسار تعلم الشبكات. في السلسلة القادمة سننتقل إلى طبقة ربط البيانات (Data Link Layer) — حيث تُصبح البتات الخام إطارات، وتُحل مشاكل الوصول المشترك للوسيط، وتبدأ قصة عناوين MAC واتفاقيات الإرسال على الشبكة المحلية.

أسئلة شائعة (FAQ)

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

لأن الدوائر الإلكترونية تعرف حالتين فيزيائيتين فقط: جهد مرتفع (1) أو منخفض (0)، تيار يجري أو لا يجري، مفتاح مفتوح أو مغلق. بناء دائرة تميّز 10 مستويات للجهد (كما يتطلب النظام العشري) معقد وعرضة للخطأ وغالٍ. النظام الثنائي بحالتين واضحتين أبسط وأموثق وأسرع بكثير للتنفيذ في الترانزستورات الإلكترونية.

ما الفرق بين Bit وByte وNibble؟

Bit هو أصغر وحدة معلومات — قيمته 0 أو 1. Nibble هو 4 بتات معاً — يُمثَّل برمز Hex واحد (0-F). Byte هو 8 بتات = نيبلَين = رمزان Hex — يُمثّل قيمة بين 0 و255. الـ Byte هو الوحدة الأساسية للذاكرة والنقل — عنوان IP = 4 بايت، عنوان MAC = 6 بايت، حرف ASCII = 1 بايت، حرف عربي بـ UTF-8 = 2 بايت.

لماذا تنتهي عناوين IP بـ .255 أو .0؟ ما علاقة ذلك بالثنائي؟

بالثنائي: 255 = 11111111 (كل البتات 1) و0 = 00000000 (كل البتات 0). في شبكة بقناع /24 (255.255.255.0): عنوان الشبكة (x.x.x.0) — آخر بايت كله أصفار — يُمثّل الشبكة نفسها ولا يُعطى لجهاز. عنوان البث (x.x.x.255) — آخر بايت كله آحاد — مخصص للـ Broadcast للجميع. هذان العنوانان "المحجوزان" في كل شبكة سببهما الثنائي مباشرة.

ما الفرق بين ASCII وUnicode وأيهما أستخدم؟

ASCII نظام قديم (1963) يُغطي 128 رمزاً فقط — الإنجليزية والرموز الأساسية. Unicode نظام حديث يُغطي أكثر من 140,000 رمز من كل لغات العالم بما فيها العربية والصينية والإيموجي. عملياً: UTF-8 (تشفير Unicode) هو المعيار الحالي لكل الويب والبرمجيات الحديثة. لا تزال تقرأ عن ASCII في سياقات الشبكات والأمن لكن لا تُنشئ تطبيقات جديدة بـ ASCII فقط.

لماذا عناوين MAC تُكتَب بالـ Hex وليس بالعشري؟

عنوان MAC هو 48 بتاً. بالثنائي: 48 رقماً — صعب القراءة. بالعشري: الأرقام لا تنقسم بشكل نظيف (3 أرقام عشرية لا تتوافق مع 8 بتات). بالـ Hex: كل 4 بتات = رمز واحد، إذن 48 بتاً = 12 رمزاً Hex مُقسَّمة بنقطتين: XX:XX:XX:XX:XX:XX. قابل للقراءة ومرتبط مباشرة بالبنية الثنائية — لهذا Hex هو الاختيار المنطقي الوحيد لعناوين MAC وIPv6.

كيف يستخدم متخصص الأمن السيبراني الـ Hex في عمله؟

بطرق عدة في العمل اليومي: قراءة Shellcode في تحليل البرمجيات الخبيثة (مثل \x90\x90 = NOP sled). فحص محتوى الحزم الشبكية في Wireshark حيث كل شيء يُعرض بالـ Hex. مقارنة Hash المشبوه (MD5/SHA-256) بقواعد بيانات البرمجيات الخبيثة. فهم بنية ملفات التنفيذ (PE Header للـ EXE) عند الهندسة العكسية. تعديل بيانات ثنائية في الـ Hex Editor لاختبار الثغرات.

إرسال تعليق