מה זה בייט (Byte)?
בייט (byte) הוא יחידת מידע דיגיטלי שמורכבת מ-8 ביטים, שיחד יכולים לייצג 256 ערכים שונים, מ-0 עד 255. ברוב המחשבים זו יחידת הזיכרון הקטנה ביותר שיש לה כתובת משלה, וגודל קבצים נספר בבייטים.
עודכן ב-24 בספטמבר 2026
- 48H
- 69i
- 20␣
- F0 9F 98 80😀
4 תווים, 7 בייטים
האות A, כשהיא שמורה במחשב, היא המספר 65, והמספר 65 נשמר כשמונה ביטים: 01000001. הקבוצה הזו של שמונה היא בייט. כתובות זיכרון סופרות בייטים, גודל קבצים נספר בבייטים, וכמעט כל טיפוס נתונים בשפת תכנות תופס מספר שלם של בייטים.
למה בייט הוא 8 ביטים
את המילה "byte" טבע ורנר בוכהולץ (Werner Buchholz) ב-1956, כשעבד על מחשב Stretch של IBM. הוא כתב אותה עם y כדי שלא יקראו אותה בטעות "bit". מחשבים מוקדמים השתמשו בקבוצות בגדלים שונים, לרוב 6 ביטים, מה שהספיק לאותיות גדולות ולספרות אבל לא לאותיות קטנות.
System/360 של IBM, שיצא ב-1964, השתמש בבייטים של 8 ביטים, ושאר התעשייה הלכה בעקבותיו. שמונה ביטים נותנים 256 ערכים, מקום לאותיות גדולות וקטנות, לספרות, לסימני פיסוק ולקודי בקרה. שמונה היא גם חזקה של 2, כך שבייט מתחלק בדיוק לשני חצאים של 4 ביטים, וכל חצי נכתב כספרה הקסדצימלית אחת. תקני תקשורת עדיין אומרים "octet" כשהם צריכים לציין במדויק שמדובר בדיוק ב-8 ביטים.
מה בייט אחד יכול להחזיק
לבייט יש 256 תבניות אפשריות, מ-00000000 עד 11111111. תוכניות קוראות אותן בכמה דרכים סטנדרטיות:
- כמספר ללא סימן מ-0 עד 255;
- כמספר עם סימן ממינוס 128 עד 127;
- כתו אחד, כמו
A(65) או!(33); - כשתי ספרות הקסדצימליות, מ-
00עדFF.
הטיפוס bytes של Python הוא רצף של ערכים כאלה, והוא מסרב לכל דבר מחוץ לטווח 0 עד 255:
b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)
לא כל תו נכנס בבייט אחד. UTF-8, הקידוד שרוב הרשת משתמשת בו, שומר את 128 תווי ה-ASCII בבייט אחד כל אחד, וכל תו אחר ב-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
בגלל זה האורך של מחרוזת בתווים והגודל שלה בבייטים יכולים להיות שונים. גם אותיות עבריות תופסות 2 בייטים כל אחת ב-UTF-8.
ביט מול בייט
ביט הוא 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 שניות.
קילובייט, מגה בייט וג'יגה בייט
יחידות גדולות יותר קיימות בשתי שיטות, והפער ביניהן הוא הסיבה שכונן חדש נראה ב-Windows קטן יותר ממה שכתוב על התווית.
| עשרוני (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 ו-Windows משתמשים ביחידות הבינאריות, אבל Windows מסמנת אותן 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
שום מקום לא חסר. הכונן מחזיק את טריליון הבייטים שהקופסה מבטיחה; Windows פשוט מחלקת ב-1,024 שלוש פעמים במקום ב-1,000.
בייטים בקוד
כל ערך בזיכרון תופס מספר שלם של בייטים. ב-C, sizeof מחזיר את המספר הזה. char הוא בדיוק בייט אחד לפי ההגדרה, ובמערכות Linux, macOS ו-Windows של 64 ביט היום, short הוא 2 בייטים, int הוא 4 ו-double הוא 8. מערך של 1,000 ערכי int תופס לכן 4,000 בייטים.
printf("%zu\n", sizeof(int)); /* prints 4 */
הטיפוס byte של Java הוא תמיד עם סימן, ממינוס 128 עד 127, כך שערך כמו 200 לא נכנס בו:
byte b = (byte) 200; // b is -56: the same 8 bits, read as signed
נתונים גולמיים כמו תמונות, קבצים דחוסים ומנות רשת מטופלים כמערך של בייטים: bytes ו-bytearray ב-Python, byte[] ב-Java, Uint8Array ב-JavaScript. פתיחת קובץ ב-Python במצב "rb" נותנת את הבייטים שלו במקום טקסט.
גם גיבובים (hashes) וchecksums נמדדים בבייטים. תקציר SHA-256 הוא 32 בייטים, ולכן הוא מודפס כ-64 תווים הקסדצימליים, ו-checksum מסוג CRC32 הוא 4 בייטים. מחולל הגיבובים מציג את שניהם לכל טקסט.
לאן ממשיכים מכאן
כדי להכיר את היחידה שמתחת לבייט, קראו מה זה ביט, וכדי לראות איך בייטים משמשים לזיהוי קבצים פגומים, מה זה checksum. ממיר בסיסי הספירה מעביר כל בייט בין עשרוני, בינארי והקסדצימלי, והמדריך לטיפוסי נתונים ב-C מפרט את הגודל בבייטים של כל טיפוס ב-C.
שאלות נפוצות
איך נקראים 8 הביטים 11111111?
11111111 הוא בייט שכל הביטים בו הם 1. כשקוראים אותו כמספר ללא סימן הוא 255, הערך הגדול ביותר שבייט יכול להחזיק, ונכתב FF בהקסדצימלי. כשקוראים אותו כבייט עם סימן בשיטת המשלים ל-2, אותם ביטים פירושם מינוס 1.למה 8 ביטים שווים לבייט אחד?
למה 4 ביטים נקראים nibble?
האם בייט אחד הוא 4 ביטים?
מה גדול יותר, בייטים או GB?
איך נראה בייט אחד?
01000001. התבנית הזו היא המספר 65, שהוא גם הקוד של האות A ב-ASCII. מתכנתים בדרך כלל כותבים בייט כשתי ספרות הקסדצימליות, כך ש-01000001 הופך ל-41.