ASCII

קוד לייצוג תווים

ASCII (ראשי תיבות של: American Standard Code for Information Interchange) הוא קוד לייצוגם של תווים (ספרות, אותיות האלפבית, סימני פיסוק ועוד) בזיכרון מחשב ובקובצי מחשב.

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

מבנה

עריכה

קוד ASCII משמש להצגת אותיות האלפבית הלטיני הפשוט, ללא סימנים דיאקריטיים, המכונים לעיתים אקצנטים. הקוד הוא קידוד תווים של 7 סיביות המכיל 128 תווים (2 בחזקת 7, מספר כל הצירופים הבינאריים של 7 סיביות), בהם 33 תווי בקרה (ירידת שורה, למשל), 52 אותיות הכתב הלטיני (בעיקרון 26 אותיות, כאשר לכל אחת ישנן שתי צורות), 33 סימנים נוספים (כגון סימני פיסוק וסימן הרווח), ו-10 ספרות.

הקוד אינו כולל אותיות בשום אלפבית אחר. בעבר הותאם הקוד לעברית ("קוד ישן") – 27 תווים (כולל אותיות סופיות) תפסו את מקום האותיות הלטיניות הקטנות. גם שפות אחרות הותאמו אליו, למשל עבור גרמנית ויתרו על כמה תווים לטובת יצירת אותיות לטיניות עם סימנים.

כיום תקני ISO מרחיבים תקן זה (בצורתו הבסיסית האמריקאית – לא בצורתו הגרמנית או העברית, למשל), ו־Latin-1, התקן הבסיסי לאנגלית, כולל אותיות לטיניות עם סימנים דיאקריטיים. ISO-8859-8 הוא התקן לעברית המשמש ברוב מערכות המחשב הקיימות.

במרץ 1968 הורה הנשיא לינדון ג'ונסון לסוכנויות פדרליות של ארצות הברית לרכוש אך ורק מחשבים התומכים בקוד ASCII[1]. למשך תקופה מסוימת עוד הייתה ל־ASCII תחרות מצד קוד EBCDIC שפיתחה חברת IBM, אולם עם הזמן ASCII זכתה לעדיפות והייתה לתקן בין-לאומי.

כיום, השימוש ב־ASCII טהור יורד בגלל המעבר ליוניקוד, הכולל אוסף רחב בהרבה של סימנים, ומאפשר ייצוג שפות אחדות במקביל. על אף שישנן תכנות שאינן מתפקדות באופן אופטימלי עם תו שתופס 2 בתים, קיימים תקנים כגון UTF-8 המאפשרים לתווי ה־ASCII לעבור ללא שינוי.

טבלת ASCII

עריכה

קוד ה-ASCII מוצג לעיתים כטבלה המתאימה בין התו לבין המספר שמיצג אותו ולכן מקובל להתייחס להתאמה בשם: "טבלת ASCII". בטבלת ה-ASCII שלמטה, מופיעים התווים כאשר הערך הבינארי של כל תו מושג על ידי העמודה השמאלית ביותר שמייצגת את שלוש הספרות הבינאריות השמאליות של המספר, ועל ידי השורה העליונה שמייצגת את ארבע הספרות הימניות של המספר. למשל, הייצוג הבינארי של התו "B" הוא "1000010". צבע הרקע הכחול מייצג תו בקרה, צבע הרקע הצהוב מיצג תווים הניתנים להדפסה.

_0000 _0001 _0010 _0011 _0100 _0101 _0110 _0111 _1000 _1001 _1010 _1011 _1100 _1101 _1110 _1111
000_ NUL

[א]

SOH

[תו 1]

STX

[תו 2]

ETX

[תו 3]

EOT

[תו 4]

ENQ

[תו 5]

ACK

[תו 6]

BEL

[תו 7]

BS

[תו 8]

HT

[תו 9]

LF

[תו 10]

VT

[תו 11]

FF

[תו 12]

CR

[תו 13]

CO

[תו 14]

SI

[תו 15]

001_ DLE

[תו 16]

DC1

[תו 17]

DC2

[תו 18]

DC3

[תו 19]

DC4

[תו 20]

NAK

[תו 21]

SYN

[תו 22]

ETB

[תו 23]

CAN

[תו 24]

EM

[תו 25]

SUB

[תו 26]

ESC

[תו 27]

FS

[תו 28]

GS

[תו 29]

RS

[תו 30]

US

[תו 31]

010_ SP

[תו 32]

!

[תו 33]

"

[תו 34]

#

[תו 35]

$

[תו 36]

%

[תו 37]

&

[תו 38]

'

[תו 39]

(

[תו 40]

)

[תו 41]

*

[תו 42]

+

[תו 43]

,

[תו 44]

-

[תו 45]

.

[תו 46]

/

[תו 47]

011_ 0

[תו 48]

1

[תו 49]

2

[תו 50]

3

[תו 51]

4

[תו 52]

5

[תו 53]

6

[תו 54]

7

[תו 55]

8

[תו 56]

9

[תו 57]

:

[תו 58]

;

[תו 59]

<

[תו 60]

=

[תו 61]

>

[תו 62]

?

[תו 63]

100_ @

[תו 64]

A

[תו 65]

B

[תו 66]

C

[תו 67]

D

[תו 68]

E

[תו 69]

F

[תו 70]

G

[תו 71]

H

[תו 72]

I

[תו 73]

J

[תו 74]

K

[תו 75]

L

[תו 76]

M

[תו 77]

N

[תו 78]

O

[תו 79]

101_ P

[תו 80]

Q

[תו 81]

R

[תו 82]

S

[תו 83]

T

[תו 84]

U

[תו 85]

V

[תו 86]

W

[תו 87]

X

[תו 88]

Y

[תו 89]

Z

[תו 90]

[

[תו 91]

\

[תו 92]

]

[תו 93]

^

[תו 94]

_

[תו 95]

110_ `

[תו 96]

a

[תו 97]

b

[תו 98]

c

[תו 99]

d

[תו 100]

e

[תו 101]

f

[תו 102]

g

[תו 103]

h

[תו 104]

i

[תו 105]

j

[תו 106]

k

[תו 107]

l

[תו 108]

m

[תו 109]

n

[תו 110]

o

[תו 111]

111 p

[תו 112]

q

[תו 113]

r

[תו 114]

s

[תו 115]

t

[תו 116]

u

[תו 117]

v

[תו 118]

w

[תו 119]

x

[תו 120]

y

[תו 121]

z

[תו 122]

{

[תו 123]

|

[תו 124]

}

[תו 125]

~

[תו 126]

DEL

[תו 127]


הערות שוליים לטבלת ASCII
  1. ^ NUL - מספר סידורי:0 שם:Null character
  1. ^ SOH - מספר סידורי:1 שם:Start of Header
  2. ^ STX - מספר סידורי:2 שם:Start of Text
  3. ^ ETX - מספר סידורי:3 שם:End of Text
  4. ^ EOT - מספר סידורי:4 שם:End of Transmission
  5. ^ ENQ - מספר סידורי:5 שם:Enquiry
  6. ^ ACK - מספר סידורי:6 שם:Acknowledgment
  7. ^ BEL - מספר סידורי:7 שם:Bell
  8. ^ BS - מספר סידורי:8 שם:Backspace
  9. ^ HT - מספר סידורי:9 שם:Horizontal Tab
  10. ^ LF - מספר סידורי:10 שם:Line feed
  11. ^ VT - מספר סידורי:11 שם:Vertical Tab
  12. ^ FF - מספר סידורי:12 שם:Form feed
  13. ^ CR - מספר סידורי:13 שם:Carriage return
  14. ^ CO - מספר סידורי:14 שם:Shift Out
  15. ^ SI - מספר סידורי:15 שם:Shift In
  16. ^ DLE - מספר סידורי:16 שם:Data Link Escape
  17. ^ DC1 - מספר סידורי:17 שם:Device Control 1/XON
  18. ^ DC2 - מספר סידורי:18 שם:Device Control 2
  19. ^ DC3 מספר סידורי:19 שם:-Device Control 3/XOFF
  20. ^ DC4 - מספר סידורי:20 שם:Device Control 4
  21. ^ NAK - מספר סידורי:21 שם:Negative Acknowledgment
  22. ^ SYN - מספר סידורי:22 שם:Synchronous idle
  23. ^ ETB - מספר סידורי:23 שם:End of Transmission Block
  24. ^ CAN - מספר סידורי:24 שם:Cancel
  25. ^ EM - מספר סידורי:25 שם:End of Medium
  26. ^ SUB - מספר סידורי:26 שם:Substitute
  27. ^ ESC - מספר סידורי:27 שם:Escape
  28. ^ FS - מספר סידורי:28 שם:File Separator
  29. ^ GS - מספר סידורי:29 שם:Group Separator
  30. ^ RS - מספר סידורי:30 שם:Record Separator
  31. ^ US - מספר סידורי:31 שם:Unit Separator
  32. ^ SP - מספר סידורי:32 שם:SPACE
  33. ^ ! - מספר סידורי:33
  34. ^ " - מספר סידורי:34
  35. ^ # - מספר סידורי:35
  36. ^ $ - מספר סידורי:36
  37. ^ % - מספר סידורי:37
  38. ^ & - מספר סידורי:38
  39. ^ ' - מספר סידורי:39
  40. ^ ) - מספר סידורי:40
  41. ^ ( - מספר סידורי:41
  42. ^ * - מספר סידורי:42
  43. ^ + - מספר סידורי:43
  44. ^ , - מספר סידורי:44
  45. ^ "-" - מספר סידורי:45
  46. ^ . - מספר סידורי:46
  47. ^ / - מספר סידורי:47
  48. ^ 0 - מספר סידורי:48
  49. ^ 1 - מספר סידורי:49
  50. ^ 2 - מספר סידורי:50
  51. ^ 3 - מספר סידורי:51
  52. ^ 4 - מספר סידורי:52
  53. ^ 5 - מספר סידורי:53
  54. ^ 6 - מספר סידורי:54
  55. ^ 7 - מספר סידורי:55
  56. ^ 8 - מספר סידורי:56
  57. ^ 9 - מספר סידורי:57
  58. ^ : - מספר סידורי:58
  59. ^ ; - מספר סידורי:59
  60. ^ > - מספר סידורי:60
  61. ^ = - מספר סידורי:61
  62. ^ < - מספר סידורי:62
  63. ^ ? - מספר סידורי:63
  64. ^ @ - מספר סידורי:64
  65. ^ A - מספר סידורי:65
  66. ^ B - מספר סידורי:66
  67. ^ C - מספר סידורי:67
  68. ^ D - מספר סידורי:68
  69. ^ E - מספר סידורי:69
  70. ^ F - מספר סידורי:70
  71. ^ G - מספר סידורי:71
  72. ^ H - מספר סידורי:72
  73. ^ I - מספר סידורי:73
  74. ^ J - מספר סידורי:74
  75. ^ K - מספר סידורי:75
  76. ^ L - מספר סידורי:76
  77. ^ M - מספר סידורי:77
  78. ^ N - מספר סידורי:78
  79. ^ O - מספר סידורי:79
  80. ^ P - מספר סידורי:80
  81. ^ Q - מספר סידורי:81
  82. ^ R - מספר סידורי:82
  83. ^ S - מספר סידורי:83
  84. ^ T - מספר סידורי:84
  85. ^ U - מספר סידורי:85
  86. ^ V - מספר סידורי:86
  87. ^ W - מספר סידורי:87
  88. ^ X - מספר סידורי:88
  89. ^ Y - מספר סידורי:89
  90. ^ Z - מספר סידורי:90
  91. ^ ] - מספר סידורי:91
  92. ^ \ - מספר סידורי:92
  93. ^ [ - מספר סידורי:93
  94. ^ ^ - מספר סידורי:94
  95. ^ _ - מספר סידורי:95
  96. ^ ` - מספר סידורי:96
  97. ^ a - מספר סידורי:97
  98. ^ b - מספר סידורי:98
  99. ^ c - מספר סידורי:99
  100. ^ d - מספר סידורי:100
  101. ^ e - מספר סידורי:101
  102. ^ f - מספר סידורי:102
  103. ^ g - מספר סידורי:103
  104. ^ h - מספר סידורי:104
  105. ^ i - מספר סידורי:105
  106. ^ j - מספר סידורי:106
  107. ^ k - מספר סידורי:107
  108. ^ l - מספר סידורי:108
  109. ^ m - מספר סידורי:109
  110. ^ n - מספר סידורי:110
  111. ^ o - מספר סידורי:111
  112. ^ p - מספר סידורי:112
  113. ^ q - מספר סידורי:113
  114. ^ r - מספר סידורי:114
  115. ^ s - מספר סידורי:115
  116. ^ t - מספר סידורי:116
  117. ^ u - מספר סידורי:117
  118. ^ v - מספר סידורי:118
  119. ^ w - מספר סידורי:119
  120. ^ x - מספר סידורי:120
  121. ^ y - מספר סידורי:121
  122. ^ z - מספר סידורי:122
  123. ^ } - מספר סידורי:123
  124. ^ | - מספר סידורי:124
  125. ^ { - מספר סידורי:125
  126. ^ ~ - מספר סידורי:126
  127. ^ DEL - מספר סידורי:127 שם:Delete

עברית

עריכה

בקוד ASCII הוגדרו רק אותיות לטיניות, גדולות וקטנות. כדי להתאימו לעברית הוחלפו האותיות הלטיניות הקטנות באותיות עבריות (בטווח 0x61 עד 0x7A), כך ש-a הוחלפה ל-ב', b הוחלפה ל-ג', וכך הלאה עד z שהוחלפה ל-ת'. כיוון שבאלפבית העברי יש אות אחת יותר מאשר באלפבית האנגלי, קיבלה האות א' את הערך שלפני a, כלומר 0x60. התאמה זו כונתה בהמשך "קוד ישן".

בקוד ASCII מורחב, בן 8 ביטים, בתקן ISO 8859-8 קיבל האלפבית העברי את הטווח 0xE0 עד 0xFA.

בתקן Code page 862 (אנ') הנמצא בשימוש על ידי מערכת ההפעלה MS-DOS, שאף הוא בן 8 ביטים, קיבל האלפבית העברי את הטווח 0x80 עד 0x9A. בחלונות 3.x וחלונות 9x יש שימוש בקוד Windows-1255 במקום תקן 862, אם כי מערכת ההפעלה מקבלת את תקן 862 כאשר מופעלים יישומי DOS.

ראו גם

עריכה

קישורים חיצוניים

עריכה

הערות שוליים

עריכה
  1. ^ Lyndon B. Johnson, Memorandum Approving the Adoption by the Federal Government of a Standard Code for Information Interchange. The American Presidency Project., March 11, 1968.