← כל הכלים

טבלת ASCII

מדריך מלא לטבלת ASCII עם קודים עשרוניים, הקסדצימליים ובינריים, תווי בקרה מול תווים ניתנים להדפסה, וכיצד ASCII קשור ליוניקוד ול-UTF-8.
DecHexOctCharשם

טבלת ASCII: איך 128 מספרים הפכו ליסוד הטקסט

ASCII, קיצור של American Standard Code for Information Interchange, הוא קידוד התווים שלימד מחשבים להסכים על מהי אות. פורסם ב-1963 ועודכן במהלך שנות ה-60, הוא ממפה כל תו בסיסי בטקסט אנגלי, את הספרות, וקומץ אותות בקרה, למספרים שמכונה יכולה לאחסן ולשדר. כשאתם לוחצים על המקש עבור A גדולה, המחשב שלכם לא שומר צורה, הוא שומר את המספר 65. ASCII היא טבלת החיפוש שגורמת למספר הזה לייצג A בכל מקום שאליו הוא נוסע.

התקן ידוע בקומפקטיות שלו. ASCII הוא קוד בן 7 סיביות, כלומר כל תו נכנס לתוך שבע ספרות בינאריות, וכל מאגר התווים משתרע על פני בדיוק 2 בחזקת 7, כלומר 128 קודי נקודה מובחנים, ממוספרים 0 עד 127. חסכנות זו הייתה מכוונת. טלטייפים ומודמים מוקדמים היו איטיים ויקרים, אז כל סיבית נספרה. שבע סיביות היו מספיקות כדי לכסות אותיות לטיניות גדולות וקטנות, עשר הספרות, סימני פיסוק נפוצים, ותווי איתות ששמרו על התקנים מסונכרנים, כאשר סיבית אחת נותרה שמערכות רבות השתמשו בה לבדיקת שגיאות.

רשת מופשטת וזוהרת של תאי תווים מסודרים באינדיגו כהה עם אור ציאן וזהב
ASCII מסדרת כל תו לרשת קבועה וממוספרת של 128 תאים.

שני חצאים: תווי בקרה ותווים ניתנים להדפסה

הטבלה מתחלקת בבירור לשני אזורים. הקודים 0 עד 31, בתוספת קוד 127 (DEL), הם תווי הבקרה. אלה אינם מדפיסים סמל על המסך. במקום זאת הם מנחים התקן לבצע פעולה: קוד 9 הוא טאב אופקי, קוד 10 הוא הזנת שורה (line feed) המעבירה לשורה חדשה, קוד 13 הוא החזרת גררה (carriage return), וקוד 7 הוא הפעמון שפעם גרם למסוף להשמיע צליל. שלושים ושלושה מקודי האיתות הללו קיימים בסך הכול, ואף שרבים מהם כיום סקרנות היסטורית, הזנת שורה, החזרת גררה וטאב נותרים חיוניים לאופן שבו קבצי טקסט מעוצבים כיום.

הקודים 32 עד 126 הם התווים הניתנים להדפסה, תשעים וחמישה במספר. קוד 32 הוא הרווח, הנחשב ניתן להדפסה מכיוון שהוא מקדם את הסמן למרות שאינו מציג דבר. משם מקבלים את סימני הפיסוק והסמלים, הספרות 0 עד 9 בקודים 48 עד 57, האותיות הגדולות A עד Z בקודים 65 עד 90, והאותיות הקטנות a עד z בקודים 97 עד 122. תכונה נאה נובעת מהפריסה הזו: הגרסאות הקטנה והגדולה של אותה אות נבדלות בדיוק ב-32, וזו הסיבה שהיפוך סיבית אחת ממיר בין רישיות. סדירויות אלה אינן מקריות, הן תוכננו כך שמיון והמרת רישיות יוכלו להתבצע באמצעות חשבון פשוט.

עשרוני, הקסדצימלי ובינארי: שלושה מבטים על אותו מספר

כל קוד ASCII הוא סתם מספר, ותראו אותו כתוב בשלוש דרכים. עשרוני הוא הצורה היומיומית בבסיס 10, כך ש-A הוא 65. הקסדצימלי, בסיס 16, היא הצורה שאליה מתכנתים פונים כי היא מתיישרת עם בתים: A הוא 0x41, וטווח ההדפסה נע מ-0x20 עד 0x7E. בינארי, בסיס 2, היא הצורה שהחומרה בעצם מאחסנת, כך ש-A הוא 1000001 על פני שבע הסיביות שלו. אותו תו, שלוש סימונים, ושליטה במעבר ביניהם היא מיומנות מרכזית כשקוראים תמונות זיכרון או תעבורת רשת. אם אתם עובדים עם ההמרות הללו לעיתים קרובות, מערך טבלאות העזר הרחב יותר באתר speedor.net שומר את המיפויים במרחק קליק אחד.

זרמי אור בינארי והקסדצימלי הזורמים לתוך משבצות סמלים זוהרות על שדה כחול כהה
בינארי והקסדצימלי הם פשוט בסיסים שונים המתארים את אותו קוד נקודה של ASCII.

היכן ASCII עדיין חשוב

יהיה זה טעות לתייג את ASCII כהיסטוריה. הוא חי בעבודה היומיומית של כל מי שנוגע בקוד. שפות תכנות מתייחסות למחרוזות מילוליות, קבצי מקור ומילות מפתח בפרוטוקולים כאל ASCII ברמת הבית. פרוטוקולי רשת כמו כותרות HTTP, SMTP ופורמטי תצורה רבים מוגדרים ב-ASCII כדי שיישארו קריאים לבני אדם. כשמחרוזת נראית פגומה, מפתחים פונים למציג הקסדצימלי וקוראים את הבתים הגולמיים אל מול טבלת ASCII כדי לאתר תו בקרה תועה או סיום שורה שגוי. קידוד URL, Base64 ורצפי בריחה כולם נבנים על ערכי ASCII. עבור כל מי שמנפה באגי קידוד, טבלת עזר מהירה ליד כלי המפתחים שלכם הופכת בית מסתורי לתשובה ברורה.

מ-ASCII ל-Unicode ול-UTF-8

ASCII טיפל באנגלית בצורה נהדרת וכמעט בכלום מלבד זאת. תקרה של 128 תווים לא יכולה להכיל אותיות עם סימנים דיאקריטיים, קירילית, סינית, ערבית או אמוג'י. Unicode ענה על כך בכך שהקצה מספר ייחודי, הנקרא קוד נקודה, לכל תו בכל שיטת כתיבה, כיום למעלה ממאה אלף כאלה. באופן מכריע, Unicode הוא קטלוג של תווים, לא פורמט אחסון, ולכן הוא זקוק לקידוד כדי להפוך את קודי הנקודה הללו לבתים.

UTF-8 הוא אותו קידוד, וזו הסיבה ש-ASCII מעולם לא נעלם באמת. UTF-8 משתמש בין בית אחד לארבעה בתים לתו, והוא תוכנן כך שקודי הנקודה 0 עד 127, כל טווח ה-ASCII, מאוחסנים בבית בודד זהה ל-ASCII רגיל. זה הופך את UTF-8 לתואם לאחור באופן מושלם: כל קובץ ASCII תקין הוא כבר קובץ UTF-8 תקין. תווים מעל 127 משתמשים בבתים נוספים. תאימות אלגנטית זו היא סיבה גדולה לכך ש-UTF-8 מפעיל כיום את הרוב המכריע של הרשת. בקצרה, ASCII הוא הליבה המקורית של 128 התווים, Unicode הוא הקטלוג האוניברסלי שמכיל אותה, ו-UTF-8 הוא הקידוד שנושא את שניהם תוך שמירה על טקסט ASCII ללא שינוי, בית אחר בית.

שאלות נפוצות

כמה תווים יש בטבלת ASCII?

ASCII סטנדרטי מגדיר 128 תווים, ממוספרים 0 עד 127. מתוכם, 95 הם תווים ניתנים להדפסה כולל הרווח, ו-33 הם תווי בקרה המאותתים להתקנים במקום להדפיס סמל.

מה ההבדל בין תווי בקרה לתווים ניתנים להדפסה?

תווי בקרה, קודים 0 עד 31 בתוספת 127, מנחים התקן לבצע פעולה כמו הזנת שורה או טאב, ואינם מפיקים סמל גלוי. תווים ניתנים להדפסה, קודים 32 עד 126, הם האותיות, הספרות, סימני הפיסוק והרווח שאתם באמת רואים על המסך.

מדוע ASCII הוא קוד בן 7 סיביות?

שבע סיביות נותנות בדיוק 128 צירופים, מה שהספיק כדי לכסות אותיות אנגלית, ספרות, סימני פיסוק ואותות בקרה תוך חיסכון ברוחב פס על חומרה מוקדמת ואיטית. הסיבית השמינית בבית הייתה לעיתים קרובות שמורה לבדיקת שגיאות זוגיות.

מהו קוד ה-ASCII עבור האות A?

A גדולה היא 65 עשרוני, 0x41 הקסדצימלי, ו-1000001 בינארי. a קטנה היא 97 עשרוני, בדיוק 32 גבוה יותר, תבנית מובנית המאפשרת המרת רישיות באמצעות חשבון פשוט.

האם ASCII זהה ל-Unicode?

לא. ASCII מכסה 128 תווים, בעוד ש-Unicode מקטלג למעלה ממאה אלף תווים בכל שיטות הכתיבה. ASCII הוא למעשה 128 קודי הנקודה הראשונים של Unicode, כך שהוא תת-קבוצה קטנה של התקן הגדול יותר.

איך UTF-8 קשור ל-ASCII?

UTF-8 הוא קידוד עבור Unicode המאחסן קודי נקודה 0 עד 127 בבית בודד זהה ל-ASCII. זה הופך כל קובץ ASCII לקובץ UTF-8 תקין, וזו הסיבה ש-UTF-8 תואם לאחור ושולט ברשת המודרנית.