Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هو البايت (Byte)؟

البايت (byte) وحدة من وحدات البيانات الرقمية تتكون من 8 بتات، يمكنها معًا تمثيل 256 قيمة مختلفة من 0 إلى 255. وهو في معظم الحواسيب أصغر وحدة ذاكرة لها عنوان خاص بها، وبه تُحسب أحجام الملفات.

بقلم Kevin Spektor, شريك مؤسس ورئيس قسم التكنولوجيا (CTO)

آخر تحديث 24 سبتمبر 2026

128
64
32
16
8
4
2
1
عشري65
Hex41
حرف ASCIIA
  • 48H
  • 69i
  • 20␣
  • F0 9F 98 80😀

4 حرفًا، 7 بايت

الحرف A المخزّن في حاسوبك هو الرقم 65، والرقم 65 يُخزَّن على شكل ثمانية بتات: 01000001. هذه المجموعة من الثمانية هي البايت. عناوين الذاكرة تعدّ البايتات، وأحجام الملفات تعدّ البايتات، وطول كل أنواع البيانات تقريبًا في لغة البرمجة عدد صحيح من البايتات.

لماذا يساوي البايت 8 بتات

صاغ Werner Buchholz كلمة byte عام 1956 أثناء عمله على حاسوب Stretch من IBM. وكتبها بحرف y حتى لا تُقرأ خطأً على أنها bit. استخدمت الحواسيب المبكرة مجموعات بأحجام مختلفة، غالبًا 6 بتات، وكانت تكفي للحروف الكبيرة والأرقام لكن لا تكفي للحروف الصغيرة.

استخدم IBM System/360، الذي صدر عام 1964، بايتات من 8 بتات، وتبعه باقي القطاع. ثمانية بتات تعطي 256 قيمة، وفيها متسع للحروف الكبيرة والصغيرة والأرقام وعلامات الترقيم ورموز التحكم. والرقم ثمانية أيضًا قوة للعدد 2، فينقسم البايت بالتساوي إلى نصفين من 4 بتات، يُكتب كل منهما رقمًا ست عشريًا واحدًا. ولا تزال معايير الشبكات تستخدم كلمة octet حين تحتاج إلى التحديد الدقيق بأنها تعني 8 بتات بالضبط.

ماذا يحمل البايت الواحد

للبايت 256 نمطًا ممكنًا، من 00000000 إلى 11111111. تقرؤها البرامج بعدة طرق قياسية:

  • رقمًا بلا إشارة من 0 إلى 255؛
  • رقمًا ذا إشارة من ‎-128 إلى 127؛
  • حرفًا واحدًا، مثل A (65) أو ! (33)؛
  • رقمين ست عشريين، من 00 إلى FF.

النوع bytes في بايثون سلسلة من هذه القيم، ويرفض أي شيء خارج النطاق من 0 إلى 255:

b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)

ليس كل حرف يتسع في بايت واحد. يخزّن UTF-8، وهو الترميز الذي تستخدمه معظم صفحات الويب، حروف ASCII الـ 128 في بايت واحد لكل منها، وكل ما عداها في 2 إلى 4 بايتات:

A 1 bytes: [65] 41
é 2 bytes: [195, 169] c3a9
€ 3 bytes: [226, 130, 172] e282ac
😀 4 bytes: [240, 159, 152, 128] f09f9880

ولهذا قد يختلف طول النص بعدد الحروف عن حجمه بالبايتات.

الفرق بين البت والبايت

البت 0 أو 1 منفرد. والبايت 8 بتات. يسهل الخلط بين الوحدتين لأن رمزيهما لا يختلفان إلا في حالة الحرف:

البتالبايت
ما هورقم ثنائي واحد8 بتات
القيم الممكنة2 (0 أو 1)256 (من 0 إلى 255)
الرمزb (حرف صغير)B (حرف كبير)
يقيس عادةًسرعة الشبكة: Mbps و Gbpsالتخزين وحجم الملفات: KB و MB و GB
مثالاتصال بسرعة 100 Mbpsصورة حجمها 5 MB

لتحويل البتات إلى بايتات، اقسم على 8. اتصال بسرعة 100 Mbps ينقل 12.5 MB في الثانية على الأكثر، فتنزيل صورة حجمها 5 MB عليه يستغرق 0.4 ثانية على الأقل.

الكيلوبايت والميغابايت والغيغابايت

تأتي الوحدات الأكبر في نظامين، والفرق بينهما هو سبب ظهور القرص الجديد في ويندوز أصغر مما هو مكتوب على ملصقه.

العشري (SI)بايتالثنائي (IEC)بايت
كيلوبايت (kB)1,000كيبيبايت (KiB)1,024
ميغابايت (MB)1,000,000ميبيبايت (MiB)1,048,576
غيغابايت (GB)1,000,000,000غيبيبايت (GiB)1,073,741,824
تيرابايت (TB)1,000,000,000,000تيبيبايت (TiB)1,099,511,627,776

يستخدم مصنعو الأقراص وسرعات الشبكات و macOS (منذ الإصدار 10.6 عام 2009) الوحدات العشرية. وتستخدم أحجام ذاكرة RAM وويندوز الوحدات الثنائية، لكن ويندوز يسميها KB و MB و GB. أدخلت IEC أسماء كيبيبايت وميبيبايت وغيبيبايت عام 1998 لإنهاء هذا الالتباس، وإن كانت برامج كثيرة لا تزال لا تستخدمها.

1.0 TB (decimal, used on the box)
931.3 GiB (binary, what Windows calls GB)
12.5 MB per second

لا توجد مساحة مفقودة. يحمل القرص تريليون البايت الذي تعد به العلبة، لكن ويندوز يقسم على 1,024 ثلاث مرات بدل 1,000.

البايتات في الكود

كل قيمة في الذاكرة تشغل عددًا صحيحًا من البايتات. في لغة C يُبلغ sizeof عن هذا العدد. النوع char بايت واحد بالضبط بحكم التعريف، وفي أنظمة لينكس و macOS وويندوز الحالية ذات 64 بت يكون short بايتين، وint أربعة، وdouble ثمانية. لذا فإن مصفوفة من 1,000 قيمة int تشغل 4,000 بايت.

printf("%zu\n", sizeof(int));   /* prints 4 */

النوع byte في جافا دائمًا ذو إشارة، من ‎-128 إلى 127، فلا تتسع فيه قيمة مثل 200:

byte b = (byte) 200;   // b is -56: the same 8 bits, read as signed

البيانات الخام مثل الصور والملفات المضغوطة وحزم الشبكة تُعالَج على شكل مصفوفة من البايتات: bytes وbytearray في بايثون، وbyte[] في جافا، وUint8Array في جافا سكريبت. وفتح ملف في بايثون بالوضع "rb" يعطيك بايتاته بدل النص.

وقيم الـ hash والمجاميع الاختبارية تُقاس بالبايتات أيضًا. ناتج SHA-256 طوله 32 بايتًا، ولهذا يُطبع على شكل 64 حرفًا ست عشريًا، والمجموع الاختباري CRC32 طوله 4 بايتات. ومولّد الـ hash يُظهر الاثنين لأي نص.

إلى أين بعد ذلك

للوحدة التي تحت البايت، اقرأ ما هو البت، ولمعرفة كيف تُستخدم البايتات لكشف الملفات التالفة، اقرأ ما هو المجموع الاختباري. يحوّل محوّل أنظمة العد أي بايت بين النظام العشري والثنائي والست عشري، ويسرد دليل أنواع البيانات في C حجم كل نوع في C بالبايتات.

الأسئلة الشائعة

ماذا تسمى البتات الثمانية 11111111؟
ثمانية بتات تساوي بايتًا واحدًا، و11111111 بايت كل بتاته مضبوطة على 1. إذا قُرئ رقمًا بلا إشارة فهو 255، أكبر قيمة يمكن أن يحملها البايت، ويُكتب FF بالنظام الست عشري. وإذا قُرئ بايتًا ذا إشارة بنظام المتمم الثنائي (two's complement) فإن البتات نفسها تعني ‎-1.
لماذا تساوي 8 بتات بايتًا واحدًا؟
الرقم ثمانية اصطلاح انتصر، وليس قانونًا طبيعيًا. استخدم حاسوب IBM System/360، الذي صدر عام 1964، بايتات من 8 بتات، وتبعه تقريبًا كل حاسوب منذ ذلك الحين. ثمانية بتات تعطي 256 قيمة، وهي تكفي للحروف الكبيرة والصغيرة والأرقام والرموز، و8 قوة للعدد 2، مما يُبقي العتاد والحساب بسيطين.
لماذا تسمى البتات الأربعة nibble؟
الـ nibble نصف بايت، والاسم تورية: فكلمة bite تعني قضمة، وnibble قضمة صغيرة. أربعة بتات تعطي 16 قيمة، أي رقمًا ست عشريًا واحدًا بالضبط، لذا يُكتب البايت دائمًا برقمين ست عشريين، رقم لكل nibble. وتُكتب الكلمة أحيانًا nybble.
هل البايت يساوي 4 بتات؟
لا. البايت الواحد 8 بتات. أما أربعة بتات فهي نصف بايت، وتسمى nibble.
أيهما أكبر، البايت أم الغيغابايت (GB)؟
الغيغابايت أكبر بكثير: فهو مليار بايت (1,000,000,000) في النظام العشري الذي يستخدمه مصنعو الأقراص، أو 1,073,741,824 بايت في النظام الثنائي الذي يستخدمه ويندوز. البايت هو الوحدة الأساسية، والكيلوبايت والميغابايت والغيغابايت مضاعفات له.
كيف يبدو البايت الواحد؟
البايت الواحد صف من ثمانية أصفار وآحاد، مثل 01000001. هذا النمط هو الرقم 65، وهو أيضًا رمز الحرف A في ASCII. ويكتب المبرمجون البايت عادةً برقمين ست عشريين بدلًا من ذلك، فيصبح 01000001 هو 41.
Coddy programming languages illustration

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

ابدأ الآن