شيفرة الحاسب الآلي باستخدام جدول أسكي
ان نظام العد الذي نستخدمه في حياتنا اليومية يسمى نظام العد العشري، نقوم فيه بترتيب الأرقام بجانب بعضها البعض وتكون الأرقام عبارة عن 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 |
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 |
يتشكل كل رمز أو حرف أو رقم أو إشارة من 8 بتات ، أي ثمان احتمالات لفتح وغلق الدائرة الإلكترونية وكل احتمال يسمى بت Bit ويكون إما (0) أو (1) والبايت Byte عبارة عن حرف أو رمز أو إشارة ويساوي 8 بت (Byte = 8 bit) وهو عبارة عن مجموعة من ثمان بتات ، فمثلاً حرف a يشفر بنظام أسكي ASCII (01100001) وعلامة (=) (00111101) وهكذا ، ويعتبر البايت وحدة خزن للبيانات في الحاسوب .
وقد قام المبرمجين بوضع ترميز قياسي Standard Code لترميز الحروف الأبجدية والأرقام والرموز فيما يماثله من هذا النظام الثنائي ، وعليه فقد استخدم علم الترميز (التشفير) في وضع شفرة لأبجديات اللغة المستعملة (اللغة الإنجليزية مثلاً) وقد تعددت هذه الشيفرات ومن أهم الشيفرات هي : - نظام (BCD) إختصاراً لـ (Binary Coded Decimal) الذي وضعته شركة IBM ولكن لم يدم طويلاً وذلك نظراً لإقتصار هذا النظام على سداسية البتات والذي يؤدي إلى عدم الترميز ( التشفير) لكل الحروف . - نظام تشفير إبسيديك (EBCDIC) وهي إختصار لـ ( Extended Binary-Coded Decimal Interchange Code ) وهو عبارة عن ثمان بتات ويستطيع ترميز 256 حرف .
- تشفير أسكي ASCII وهي إختصار لـ (Information Interchange American Standard Code for American) وعملت هذه التشفيرة في الوقت الذي تطورت فيه الحواسب الصغيرة والذي مكن مؤسسة المعايير القياسية الأمريكية (Nationalstandards Institute) من تحديد المعايير االقياسية للحواسب . وتعتبر مجموعة ترميز ASCII حالياً أكثر المجموعات شهرة ، وقد تم ترميز أبجديات اللغة في الشفرتين السابقتين استخدمتا ثمان خانات لتشفير الأبجديات والأرقام ، فمثلاً رمز الحرف M بتشفير أسكي هو 01101101 وهكذا .
- الترميز العالمي Unicode ويسمى المعيار القياسي العالمي للمحار ف Unicode Worldwide Character Standard وهو إصدار قياسي جديد يمثل حجم الكلمة ببايتين (2 Bytes) بدلاً من بايت واحد أي أن 16 بت لكل محرف ولذا فإن إحتمال وجود الحرف من بين 65536 = 216 محرفاً أو رمزاً حقيقياً ، وهذا يكفي لتغطي كافة لغات العالم أي أنها تمثل أي رمز في العالم ويكن ضم الحروف الهجائية الصينية واليابانية والكورية وتلك الموجودة في النصوص الكلاسيكية والتاريخية المعروفة .
www.asciitable.com vb.alshahen.net/showthread.php jimprice.com/jim-asc.shtml