Binary وDecimal وHex في الشبكات: التحويل والتطبيق العملي

مشاركة

أنظمة العد ليست موضوعًا رياضيًا منفصلًا عن الشبكات. عندما ترى عنوان IPv4 مثل 192.168.1.10 فأنت تقرأ تمثيلًا عشريًا لقيم مخزنة فعليًا على شكل Bits، وعندما تحسب Subnet Mask تحتاج إلى فهم Binary، بينما يظهر Hexadecimal مباشرة في IPv6 وعناوين MAC وقيم مثل EtherType.

Binary وDecimal وHex في الشبكات: التحويل والتطبيق العملي

لذلك لا تحتاج إلى حفظ تحويلات كثيرة بقدر ما تحتاج إلى فهم العلاقة بين ثلاثة أنظمة أساسية: Decimal (Base 10) الذي نستخدمه يوميًا، وBinary (Base 2) الذي تتعامل به الأنظمة الرقمية، وHexadecimal (Base 16) الذي يمنح البشر طريقة أقصر لقراءة مجموعات طويلة من البتات.

إذا كنت ما تزال في بداية دراسة Networking، فمن المفيد وضع هذا الموضوع ضمن الصورة الأكبر في دليل أساسيات الشبكات من الصفر، ثم العودة إلى الحسابات هنا.

ما معنى Base في أنظمة العد؟

الـBase أو الأساس يحدد عدد الرموز التي يستخدمها نظام العد، كما يحدد قيمة كل خانة حسب موضعها.

النظام الأساس الرموز أين يظهر في الشبكات؟
Decimal 10 0 إلى 9 التمثيل المعتاد لعناوين IPv4 وأرقام كثيرة يقرأها المستخدم
Binary 2 0 و1 Bits، IPv4، Subnet Masks، Prefixes والعمليات المنطقية
Hexadecimal 16 0 إلى 9 وA إلى F IPv6، MAC Address، EtherType وتمثيل البيانات الثنائية بصورة مختصرة

في النظام العشري مثلًا:

257
= 2 × 10² + 5 × 10¹ + 7 × 10⁰
= 200 + 50 + 7

الفكرة نفسها تعمل في Binary وHexadecimal؛ الذي يتغير هو الأساس وقيمة كل خانة.

النظام العشري Decimal في الشبكات

Decimal هو Base 10، أي يستخدم الأرقام من 0 إلى 9. لا توجد صعوبة خاصة فيه للمبتدئ، لكن المهم هو إدراك أن الرقم العشري الذي تراه غالبًا ليس الشكل الذي تُعالج به القيمة داخليًا.

عنوان IPv4 مثل:

192.168.1.10

مقسّم إلى أربعة أجزاء تسمى عادة Octets. عنوان IPv4 نفسه بطول 32 بت، كما تحدد مواصفة IPv4 الأصلية في RFC 791. وبما أن:

32 bits ÷ 4 = 8 bits

فإن كل Octet يحتوي على 8 Bits.

هذا هو السبب في أن كل جزء في التمثيل العشري المعتاد لـIPv4 يستطيع تمثيل قيمة من 0 إلى 255.

Binary: النظام الذي تحتاجه فعلًا لفهم IPv4 وSubnetting

Binary هو Base 2 ويستخدم رمزين فقط:

0
1

كل خانة تمثل قوة من قوى الرقم 2. وعندما نتعامل مع Octet واحد من 8 Bits، تكون قيم الخانات:

128  64  32  16  8  4  2  1

أو رياضيًا:

2⁷  2⁶  2⁵  2⁴  2³  2²  2¹  2⁰

إذا كانت الخانة تساوي 1 نضيف قيمتها، وإذا كانت 0 نتجاهلها.

تحويل Binary إلى Decimal

خذ القيمة:

11000000

نضعها مقابل قيم الخانات:

Binary:  1    1    0   0   0  0  0  0
Value:  128  64   32  16  8  4  2  1

الخانات التي تحتوي على 1 هي 128 و64، لذلك:

128 + 64 = 192

إذن:

11000000₂ = 192₁₀

لماذا أكبر قيمة في Octet هي 255؟

إذا كانت جميع البتات الثمانية تساوي 1:

11111111

نحصل على:

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255

هناك في الحقيقة 256 احتمالًا مختلفًا في 8 Bits، لأن:

2⁸ = 256

لكن العد يبدأ من الصفر، ولذلك يكون النطاق:

0 إلى 255

الخلط بين «256 قيمة ممكنة» و«أكبر قيمة هي 256» من الأخطاء الشائعة. أكبر قيمة هي 255، بينما عدد القيم الممكنة هو 256.

كيفية تحويل Decimal إلى Binary بسرعة

في مسائل الشبكات، أسرع طريقة غالبًا ليست القسمة المتكررة على 2، بل استخدام جدول القوى:

128  64  32  16  8  4  2  1

لنحوّل 172.

نبدأ بأكبر قيمة لا تتجاوز 172:

172 - 128 = 44
44 - 32 = 12
12 - 8 = 4
4 - 4 = 0

إذن استخدمنا:

128 + 32 + 8 + 4 = 172

فنضع 1 في تلك الخانات و0 في البقية:

128 64 32 16 8 4 2 1
 1   0  1  0 1 1 0 0

10101100

إذن:

172₁₀ = 10101100₂

مثال كامل: تحويل عنوان IPv4 إلى Binary

لنفترض أن لدينا:

172.16.5.10

نحوّل كل Octet بصورة مستقلة:

172 = 10101100
16  = 00010000
5   = 00000101
10  = 00001010

فيصبح العنوان:

10101100.00010000.00000101.00001010

هذه النقطة مهمة: النقاط التي تراها في IPv4 تساعد البشر على تقسيم العنوان إلى أربعة Octets، لكنها لا تعني أن كل جزء كيان مستقل عن بقية الـ32 Bit.

Binary وعلاقته بـSubnet Mask وCIDR

هنا تظهر القيمة العملية الحقيقية لتعلم Binary.

خذ Subnet Mask التالية:

255.255.255.192

بالثنائي:

255 = 11111111
255 = 11111111
255 = 11111111
192 = 11000000

إذن:

11111111.11111111.11111111.11000000

إذا عددنا البتات التي تساوي 1 نجد:

8 + 8 + 8 + 2 = 26

ولهذا يمكن كتابة القناع نفسه بصيغة CIDR:

/26

بمجرد أن ترى Subnet Mask على أنها سلسلة من Bits بدل أربعة أرقام عشرية منفصلة، يصبح فهم Prefix Length وحجم الشبكة أكثر منطقية. أما حساب Network Address وBroadcast Address وVLSM بالتفصيل فله دور مختلف، لذلك ستجده في شرح Subnetting وSubnet Mask وCIDR.

ما هو Hexadecimal؟

Hexadecimal أو Hex هو Base 16. ولأننا نحتاج إلى 16 رمزًا بينما لدينا عشرة أرقام فقط، تُستخدم الأحرف من A إلى F للقيم من 10 إلى 15:

Hex Decimal Binary
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
A101010
B111011
C121100
D131101
E141110
F151111

أهم علاقة يجب تذكرها هي:

1 Hex digit = 4 Bits

وهذه ليست مصادفة. أربعة Bits توفر:

2⁴ = 16

احتمالًا، وهو العدد نفسه الذي يستطيع رقم Hex واحد تمثيله.

تحويل Binary إلى Hex بدون حسابات طويلة

قسّم الرقم الثنائي إلى مجموعات من أربعة Bits، ثم حوّل كل مجموعة مباشرة إلى Hex.

مثلًا:

Binary:
1101 0110

1101 = D
0110 = 6

Hex = D6

والعكس بسيط أيضًا:

Hex: 3A

3 = 0011
A = 1010

3A = 00111010

لهذا يستخدم Hex كثيرًا عندما يحتاج الإنسان إلى قراءة بيانات ثنائية طويلة؛ فهو أقصر بكثير من كتابة عشرات الأصفار والآحاد، مع إمكانية العودة إلى Binary بسهولة.

لماذا يتكون زوج Hex من 8 Bits؟

بما أن كل Hex Digit يمثل 4 Bits:

2 Hex digits = 8 Bits = 1 Octet

مثل:

FF
F = 1111
F = 1111

FF = 11111111

وبالعشري:

FF₁₆ = 255₁₀

لهذا ستلاحظ أن القيمة FF تتكرر كثيرًا عند التعامل مع الشبكات والبيانات منخفضة المستوى.

Hexadecimal في عناوين MAC

من أشهر الأماكن التي سترى فيها Hex عنوان MAC، مثل:

3C:52:82:1A:7F:B0

لدينا ست مجموعات، وكل مجموعة تحتوي على رقمين Hex. كل زوج يمثل 8 Bits:

3C = 8 bits
52 = 8 bits
82 = 8 bits
1A = 8 bits
7F = 8 bits
B0 = 8 bits

المجموع:

6 × 8 = 48 bits

توضح IEEE Registration Authority أن EUI-48 هو معرّف بطول 48 بت ويستخدم على نطاق واسع في عناوين MAC ضمن تقنيات IEEE 802.

ولا ينبغي فهم ذلك على أن كل MAC تراه «عنوان ثابت محفور في الجهاز ولا يمكن تغييره». توجد أيضًا عناوين Locally Administered وتقنيات تستخدم MAC Randomization. ما يهمنا هنا هو أن التمثيل السداسي العشري يجعل قراءة 48 Bit أكثر سهولة.

إذا أردت فهم الدور الشبكي للعنوان نفسه بدل طريقة كتابته فقط، يشرح مقال كيف يعمل MAC مع IP أثناء انتقال البيانات.

Hexadecimal في IPv6

IPv6 هو المثال الأوضح على فائدة Hex. عنوان IPv6 بطول 128 بت، وفق معمارية IPv6 المحددة في RFC 4291.

كتابة 128 Bit بالثنائي ستكون مرهقة جدًا:

00100000000000010000110110111000...

لذلك تكتب عناوين IPv6 باستخدام مجموعات Hexadecimal، مثل:

2001:db8:abcd:12:0:0:0:1

يمكن أن يحتوي الشكل الكامل على ثماني مجموعات، وكل مجموعة تمثل 16 Bit لأن:

4 Hex digits × 4 Bits = 16 Bits

وبالتالي:

8 groups × 16 Bits = 128 Bits

يمكن اختصار سلاسل الأصفار وفق قواعد IPv6، فيصبح المثال السابق:

2001:db8:abcd:12::1

وتحدد RFC 5952 توصيات التمثيل النصي القياسي لعناوين IPv6، ومنها حذف الأصفار الموجودة في بداية الحقول واستخدام :: لضغط أطول سلسلة مناسبة من الحقول الصفرية.

لا تحتاج في هذه المرحلة إلى تحويل عنوان IPv6 كامل إلى Binary يدويًا. الأهم هو إدراك أن كل Hex Digit يقابل بالضبط أربعة Bits، وبالتالي يمكنك تحليل أي جزء صغير من العنوان عند الحاجة.

Hex يظهر أيضًا داخل Ethernet Frames

Hex لا يقتصر على العناوين. عند تحليل حركة الشبكة باستخدام أدوات مثل Wireshark ستجد قيمًا مثل:

0x0800
0x0806
0x86DD

هذه أمثلة على EtherType. وتُظهر سجلات IANA لأرقام IEEE 802 أن:

  • 0x0800 يشير إلى IPv4.
  • 0x0806 يشير إلى ARP.
  • 0x86DD يشير إلى IPv6.

هنا يظهر سبب آخر لاستخدام Hex: القيمة الثنائية لحقل بطول 16 Bit يمكن تمثيلها بأربعة أرقام Hex فقط.

إذا أردت معرفة مكان EtherType داخل الإطار وما علاقة ذلك بعناوين MAC وباقي الحقول، راجع شرح بنية الـFrame في الشبكات.

هل يجب تعلم Octal أيضًا للشبكات؟

ليس بنفس أهمية Binary وDecimal وHex في أساسيات Networking. النظام الثماني Octal مهم في مجالات أخرى مثل بعض تمثيلات صلاحيات Unix/Linux، لكنك تستطيع دراسة IPv4 وSubnetting وMAC وIPv6 دون جعله أولوية في البداية.

إذا كان هدفك الشبكات، ركز أولًا على:

  1. قوى 2 حتى 128.
  2. التحويل بين Decimal وBinary داخل 8 Bits.
  3. فهم أن كل Hex Digit يساوي 4 Bits.
  4. التحويل بين Binary وHex بمجموعات من أربعة Bits.
  5. ربط هذه المعرفة بـIPv4 وSubnet Masks وIPv6 وMAC.

اختبار سريع للفهم

حاول حل هذه القيم ذهنيًا قبل قراءة الإجابات:

1) 192 Decimal → Binary
2) 11111100 Binary → Decimal
3) 1010 Binary → Hex
4) F Hex → Binary
5) FF Hex → Decimal

الحلول:

1) 192 = 11000000
2) 11111100 = 252
3) 1010 = A
4) F = 1111
5) FF = 255

إذا أصبحت هذه التحويلات سريعة بالنسبة لك، فقد امتلكت تقريبًا كل ما تحتاجه من أنظمة العد للانتقال إلى حسابات IPv4 وSubnetting الأساسية.

أخطاء شائعة عند تعلم أنظمة العد في الشبكات

  • حفظ جدول Subnetting دون فهم Binary: قد يساعد مؤقتًا، لكنه يجعل المسائل الجديدة أصعب.
  • الاعتقاد أن 8 Bits تعني أن أكبر رقم هو 256: هناك 256 قيمة ممكنة، لكن النطاق يبدأ من 0 وينتهي عند 255.
  • محاولة تحويل IPv6 كامل إلى Decimal: لا توجد حاجة عملية لذلك في معظم مهام الشبكات اليومية.
  • نسيان الأصفار على اليسار عند تمثيل Octet: القيمة 5 داخل Octet تكتب 00000101 عند الحاجة إلى تمثيل البتات الثمانية كاملة.
  • التعامل مع Hex كنظام منفصل تمامًا عن Binary: قوته الأساسية تأتي من أن كل رقم Hex يمثل أربعة Bits بالضبط.

الخلاصة

Decimal وBinary وHexadecimal ليست ثلاث طرق متنافسة لتخزين البيانات؛ إنها طرق مختلفة لتمثيل القيمة نفسها.

في الشبكات، يستخدم Decimal لأنه سهل للبشر في عناوين مثل IPv4، ويكشف Binary البنية الحقيقية للـBits التي تحتاجها لفهم Prefixes وSubnet Masks، بينما يختصر Hexadecimal مجموعات البتات الطويلة ويجعل قراءة IPv6 وعناوين MAC والحقول البروتوكولية أكثر عملية.

احفظ العلاقة الأساسية التالية، ثم تدرب على استخدامها:

1 Bit = 0 أو 1
4 Bits = 1 Hex digit
8 Bits = 1 Octet = 2 Hex digits
IPv4 = 32 Bits = 4 Octets
EUI-48 / MAC شائع = 48 Bits = 12 Hex digits
IPv6 = 128 Bits

عندما تصبح قوى 2 والتحويل بين Binary وDecimal وHex مألوفة، ستتوقف أرقام مثل 255.255.255.192 و/26 وFF و2001:db8::1 عن الظهور كقيم عشوائية، وستبدأ برؤية البنية المنطقية الموجودة خلفها.

شارك برأيك

لديك إضافة، سؤال أو تجربة مرتبطة بالموضوع؟ اكتبها وشارك بها القراء.