جدول اسكي as

من ويكيبيديا، الموسوعة الحرة


                      شيفرة الحاسب الآلي باستخدام جدول أسكي 
أسكي ASCII وهي اختصار لـ Information Interchange  American Standard Code for  American
  مقدمة :

ان نظام العد الذي نستخدمه في حياتنا اليومية يسمى نظام العد العشري، نقوم فيه بترتيب الأرقام بجانب بعضها البعض وتكون الأرقام عبارة عن 0 و 1 و .. و 9، والرقم الأول يحدد قيمة الآحاد والثاني يحدد قيمة العشرات فالمئات، في كل مربع نقوم بوضع قيمة ما نضربها في قيمة الخانة ونجمع الناتج لنحصل على الرقم النهائي فمثلا 365 يتم حسابه كالآتي : 1

10
100

5

6
3

العدد = 1 × 5 + 10 × 6 + 100 × 5

الأمر لا يختلف كثيرا في نظام العد الثنائي، إلا أنك لا تستخدم إلا الرقمان 0 و 1 لتحديد قيمة كل خانة، وقيمة كل خانة تختلف في تسلسلها عن قيم الخانات في نظام العد الست عشري، فهي تكون عبارة عن 1 ثم 2 ثم 4 ثم 8 وهكذا في كل مرة تضرب الرقم 2 في العدد الأخير لتحصل على العدد التالي، في المثال السابق كان العدد الذي أخذناه هو 365 أما نظيره في نظام العد الثنائي فهو 101101101 دعنا نتحقق من ذلك :

1

2
4
8
16
32
64
128
256

1

0
1
1
0
1
1
0
1

العدد = 1 × 1 + 2 × 0 + 4 × 1 + 8 × 1 + 16 × 0 + 32 × 1 + 64 × 1 + 128 × 0 + 256 × 1 = 1 + 4 + 8 + 32 + 64 + 256 = 365

يقوم الكمبيوتر بجميع عملياته باستخدام نظام العد الثنائي، لأنه يعطي كل خانة أحد قيمتين فقط إما 0 أو 1.


تخزين البيانات


       في الأعداد العشرية إذا قلنا أننا نستطيع كتابة 5 خانات فهذا يعني أننا نستطيع كتابة الأرقام من 0 إلى 99999 أي تفسير ذلك أننا نستطيع ترتيب الأرقام من 0 إلى 9 ( عشرة أرقام ) في خمس خانات فذلك يعني أننا نستطيع تغيير الأرقام وترتيبها للحصول على العديد الاحتمالات، عدد هذا الاحتمالات هو 10 × 10 × 10 × 10 × 10 لأن كل خانة تحتمل 10 احتمالات، وكل احتمال منها يحتمل عشر احتمالات معه في الخانة المجاورة وهكذا حتى الخانة الأخيرة، وهذا يعني أننا نمتلك عدد من الاحتمالات يساوي 10 أس 5 أي عدد الأرقام في كل خانة أس عدد الخانات، ويكون الناتج هو 100000 احتمال كل منها يعبر عن رقم وهذه الأرقام تبدأ من 0 إلى 99999.

الأمر ينطبق هنا أيضا على الأعداد الثنائية، فإذا قلنا أن عدد الخانات هو 5 فإن عدد الاحتمالات الكلية = عدد الاحتمالات في كل خانة أس عدد الخانات = 2 أس 5 = 32 وهي 32 احتمال تعبر عن الأرقام من 0 إلى 31، ويسمى عدد الخانات بطول الرقم، فالمتغيرة أو العداد أو أي شيء طوله 5 يعني أنه يتكون من 5 خانات ثنائية.

وقد تم الإنفاق على أن كل خانة تسمى ( بت ) وكل 8 خانات ( 8 بتات ) تسمى بايت، والبايت الواحد عبارة عن خانة كبيرة عدد احتمالاتها هو 2 أس 8 = 256 أي أنها تأخذ الأرقام من 0 إلى 255، وقد تم الإنفاق على أن يتم إعطاء كل رقم وحرف ورمز قيمة مقابلة بين الرقمين 0 و 255، حسب ما يسمى بصفحة المحار ف، أشهر صفحات المحار ف الإنجليزية هي صفحة الأسكي ASCII والأنسي ANSI،

ولكن هذا العدد من الخانات في جدول الأسكي سرعان ما يمتلأ بالحروف والأرقام، فلا يبقى أماكن شاغرة فيه للرموز الإضافية كالرموز العربية ورموز اللغات الأخرى، وهنا قامت كل لغة بعمل صفحة محار ف خاصة بها، وقامت عدة هيئات عربية بإنشاء صفحات محار ف مختلفة منها صفحة محار ف DOS العربي، وصفحة محار ف صخر إلا أن أكثرها انتشارا هي صفحة محار ف windows العربية ورمزها windows-1256

وهنالك أيضا صفحة محار ف ISO العربية، وبعد ظهور انترنت أصبح أمر صفحات المحار ف المختلفة مربكا جدا، وسبب العديد من المشاكل، فمثلا إذا فتحت صفحة ما مكتوبة على أساس صفحة محار ف عربية وفتحتها في متصفح صيني فسوف تظهر الرموز الصينية لأن الرقم 23 فرضا يشير إلى حرف أ العربي في جدول الرموز العربي.

ويشير إلى الحرف ! في جدول الرموز الصيني، فتحدث التضاربات، والمشكلة الأكبر هي اختلاف صفحات المحارف للغة الواحدة كما في اللغة العربية ، ولحل هذه المشكلة تم عمل هيئة لتوحيد صفحات محار ف العالم في صفحة محار ف وحيدة وضخمة بحيث تسع جميع الحروف والرموز المستخدمة في العالم، وبالتالي لن تحصل التضاربات لأن لكل حرف رمز مختلف وتسمى صفحة المحار ف هذه بصفحة محار ف اليونيكود UNICODE اوجدول أسكي  ويبين الجدول التالي ذلك .

حيث إن كل حرف يمثل في صورة شفرات أسكي وهذه الشفرات عبارة عن أرقام صحيحة من الصفر حتى127 .




Code en base

Caractère
Signification

10

8
16
2

0

0
00
0000000
NUL
Null (nul)

1

01
01
0000001
SOH
Start of Header (début d'en-tête)

2

02
02
0000010
STX
Start of Text (début du texte)

3

03
03
0000011
ETX
End of Text (fin du texte)

4

04
04
0000100
EOT
End of Transmission (fin de transmission)

5

05
05
0000101
ENQ
Enquiry (demande)

6

06
06
0000110
ACK
Acknowledge (accusé de réception)

7

07
07
0000111
BEL
Bell (caractère d'appel)

8

010
08
0001000
BS
Backspace (espacement arrière)

9

011
09
0001001
HT
Horizontal Tab (tabulation horizontale)

10

012
0A
0001010
LF
Line Feed (saut de ligne)

11

013
0B
0001011
VT
Vertical Tab (tabulation verticale)

12

014
0C
0001100
FF
Form Feed (saut de page)

13

015
0D
0001101
CR
Carriage Return (retour chariot)

14

016
0E
0001110
SO
Shift Out (fin d'extension)

15

017
0F
0001111
SI
Shift In (démarrage d'extension)

16

020
10
0010000
DLE
Data Link Escape

17

021
11
0010001
DC1
Device Control 1 à 4 

généralement utilisés pour le XON/XOFF dans les protocoles de connexion

18

022
12
0010010
DC2

19

023
13
0010011
DC3

20

024
14
0010100
DC4

21

025
15
0010101
NAK
Negative Acknowledge (accusé de réception négatif)

22

026
16
0010110
SYN
Synchronous Idle

23

027
17
0010111
ETB
End of Transmission Block (fin du bloc de transmission)

24

030
18
0011000
CAN
Cancel (annulation)

25

031
19
0011001
EM
End of Medium (fin de support)

26

032
1A
0011010
SUB
Substitute (substitution)

27

033
1B
0011011
ESC
Escape (échappement)

28

034
1C
0011100
FS
File Separator (séparateur de fichier)

29

035
1D
0011101
GS
Group Separator (séparateur de groupe)

30

036
1E
0011110
RS
Record Separator (séparateur d'enregistrement)

31

037
1F
0011111
US
Unit Separator (séparateur d'unité)

32

040
20
0100000
SP
Space (espace blanc)

33

041
21
0100001
 !
 


34

042
22
0100010
"
 

35

043
23
0100011
#
 

36

044
24
0100100
$
 

37

045
25
0100101
%
 

38

046
26
0100110
&
 

39

047
27
0100111
'
 

40

050
28
0101000
(
 

41

051
29
0101001
)
 

42

052
2A
0101010
*
 

43

053
2B
0101011
+
 

44

054
2C
0101100
،
 

45

055
2D
0101101
-
 

46

056
2E
0101110
.
 

47

057
2F
0101111
/
 


48

060
30
0110000
0
 

49

061
31
0110001
1
 

50

062
32
0110010
2
 

51

063
33
0110011
3
 

52

064
34
0110100
4
 

53

065
35
0110101
5
 

54

066
36
0110110
6
 

55

067
37
0110111
7
 

56

070
38
0111000
8
 

57

071
39
0111001
9
 

58

072
3A
0111010
 :
 


59

073
3B
0111011
 ;
 

60

074
3C
0111100
<
 

61

075
3D
0111101
=
 

62

076
3E
0111110
>
 

63

077
3F
0111111
 ?
 

64

0100
40
1000000
@
 


65

0101
41
1000001
A
 

66

0102
42
1000010
B
 

67

0103
43
1000011
C
 

68

0104
44
1000100
D
 

69

0105
45
1000101
E
 

70

0106
46
1000110
F
 

71

0107
47
1000111
G
 

72

0110
48
1001000
H
 

73

0111
49
1001001
I
 

74

0112
4A
1001010
J
 

75

0113
4B
1001011
K
 

76

0114
4C
1001100
L
 

77

0115
4D
1001101
M
 

78

0116
4E
1001110
N
 

79

0117
4F
1001111
O
 

80

0120
50
1010000
P
 

81

0121
51
1010001
Q
 

82

0122
52
1010010
R
 

83

0123
53
1010011
S
 

84

0124
54
1010100
T
 

85

0125
55
1010101
U
 

86

0126
56
1010110
V
 

87

0127
57
1010111
W
 

88

0130
58
1011000
X
 

89

0131
59
1011001
Y
 

90

0132
5A
1011010
Z
 


91

0133
5B
1011011
[
 

92

0134
5C
1011100
\
 

93

0135
5D
1011101
]
 

94

0136
5E
1011110
^
 

95

0137
5F
1011111
_
 

96

0140
60
1100000
`
 

97

0141
61
1100001
a
 

98

0142
62
1100010
b
 

99

0143
63
1100011
c
 

100

0144
64
1100100
d
 

101

0145
65
1100101
e
 

102

0146
66
1100110
f
 

103

0147
67
1100111
g
 

104

0150
68
1101000
h
 

105

0151
69
1101001
i
 

106

0152
6A
1101010
j
 

107

0153
6B
1101011
k
 

108

0154
6C
1101100
l
 

109

0155
6D
1101101
m
 

110

0156
6E
1101110
n
 

111

0157
6F
1101111
o
 

112

0160
70
1110000
p
 

113

0161
71
1110001
q
 

114

0162
72
1110010
r
 

115

0163
73
1110011
s
 

116

0164
74
1110100
t
 

117

0165
75
1110101
u
 

118

0166
76
1110110
v
 

119

0167
77
1110111
w
 

120

0170
78
1111000
x
 

121

0171
79
1111001
y
 

122

0172
7A
1111010
z
 

123

0173
7B
1111011
{
 

124

0174
7C
1111100
|
 

125

0175
7D
1111101
}
 

126

0176
7E
1111110
~
 

127

0177
7F
1111111
DEL
Delete (effacement)








     يتشكل كل رمز أو حرف أو رقم أو إشارة من 8 بتات ، أي ثمان احتمالات لفتح وغلق الدائرة الإلكترونية وكل احتمال يسمى بت Bit ويكون إما (0) أو (1) والبايت Byte عبارة عن حرف أو رمز أو إشارة ويساوي 8 بت (Byte = 8 bit) وهو عبارة عن مجموعة من ثمان بتات ، فمثلاً حرف a يشفر بنظام أسكي ASCII (01100001) وعلامة (=) (00111101) وهكذا ، ويعتبر البايت وحدة خزن للبيانات في الحاسوب .


وقد قام المبرمجين بوضع ترميز قياسي Standard Code لترميز الحروف الأبجدية والأرقام والرموز فيما يماثله من هذا النظام الثنائي ، وعليه فقد استخدم علم الترميز (التشفير) في وضع شفرة لأبجديات اللغة المستعملة (اللغة الإنجليزية مثلاً) وقد تعددت هذه الشيفرات ومن أهم الشيفرات هي :


1- نظام (BCD) إختصاراً لـ (Binary Coded Decimal) الذي وضعته شركة IBM ولكن لم يدم طويلاً وذلك نظراً لإقتصار هذا النظام على سداسية البتات والذي يؤدي إلى عدم الترميز ( التشفير) لكل الحروف . - نظام تشفير إبسيديك (EBCDIC) وهي إختصار لـ ( Extended Binary-Coded Decimal Interchange Code ) وهو عبارة عن ثمان بتات ويستطيع ترميز 256 حرف . 2- تشفير أسكي ASCII وهي إختصار لـ (Information Interchange American Standard Code for American) وعملت هذه التشفيرة في الوقت الذي تطورت فيه الحواسب الصغيرة والذي مكن مؤسسة المعايير القياسية الأمريكية (Nationalstandards Institute) من تحديد المعايير االقياسية للحواسب .

        وتعتبر مجموعة ترميز ASCII حالياً أكثر المجموعات شهرة ، وقد تم ترميز أبجديات اللغة في الشفرتين السابقتين استخدمتا ثمان خانات لتشفير الأبجديات والأرقام ، فمثلاً رمز الحرف M بتشفير أسكي هو 01101101 وهكذا .

3 - الترميز العالمي Unicode ويسمى المعيار القياسي العالمي للمحار ف Unicode Worldwide Character Standard وهو إصدار قياسي جديد يمثل حجم الكلمة ببايتين (2 Bytes) بدلاً من بايت واحد أي أن 16 بت لكل محرف ولذا فإن إحتمال وجود الحرف من بين 65536 = 216 محرفاً أو رمزاً حقيقياً ، وهذا يكفي لتغطي كافة لغات العالم أي أنها تمثل أي رمز في العالم ويكن ضم الحروف الهجائية الصينية واليابانية والكورية وتلك الموجودة في النصوص الكلاسيكية والتاريخية المعروفة .