ما هو البايت (Byte)؟
البايت (byte) وحدة من وحدات البيانات الرقمية تتكون من 8 بتات، يمكنها معًا تمثيل 256 قيمة مختلفة من 0 إلى 255. وهو في معظم الحواسيب أصغر وحدة ذاكرة لها عنوان خاص بها، وبه تُحسب أحجام الملفات.
آخر تحديث 24 سبتمبر 2026
- 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 بتات بايتًا واحدًا؟
لماذا تسمى البتات الأربعة nibble؟
هل البايت يساوي 4 بتات؟
أيهما أكبر، البايت أم الغيغابايت (GB)؟
كيف يبدو البايت الواحد؟
01000001. هذا النمط هو الرقم 65، وهو أيضًا رمز الحرف A في ASCII. ويكتب المبرمجون البايت عادةً برقمين ست عشريين بدلًا من ذلك، فيصبح 01000001 هو 41.