آشنایی با کدهای اسکی (ASCII) — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

۸۱۲۸ بازدید
آخرین به‌روزرسانی: ۲ مهر ۱۳۹۹
زمان مطالعه: ۱۱ دقیقه

اگر کامپیوترها با سیستم دودویی کار می‌کنند پس چگونه می‌توان حروف و کلمات را در آن‌ها ذخیره کرد؟ برای این کار به هر کاراکتر عددی را نسبت می‌دهیم که با عنوان «رمزگذاری کاراکترها» شناخته می‌شود.

فیلم آموزشی آشنایی با کدهای اسکی

دانلود ویدیو

برای فهم این‌که کدگذاری حروف چگونه کار می‌کند یک مثال ساده شروع می‌کنیم؛ اعداد ۱ تا ۲۶ را  برای حروف الفبای انگلیسی در نظر بگیرید. با کنار هم قرار دادن اعداد «۱۵ ۱۲ ۱۲ ۵ ۸» یک پیام کدگذاری شده ساده خواهید داشت که نمایانگر کلمه «hello» است.

مشخص است که برای دریافت همه اجزای زبان انگلیسی (شامل حروف بزرگ و کوچک، اعداد و علائم) به بیش از ۲۶ عدد نیاز است. به همین دلیل «کد استاندارد آمریکایی برای تبادل اطلاعات» (American Standard Code for Information Interchange, ASCII)، به عنوان اولین استاندارد برای رمزگذاری‌ کاراکترها ابداع شد.

تاریخچه

«مؤسسه استانداردهای ملی آمریکا» (American National Standards Institute, ANSI) در ۶ اکتبر ۱۹۶۰ شروع به کار بر روی «اسکی» (ASCII) کرد. طرح اولیه این کدگذاری به صورت ۵ بیتی در کدهای تلگرافی داشت و توسط «امیلی بادوت» (Emile baudot) ابداع شد. اما در پایان کمیته طراح تصمیم به استفاده از کد ۷ بیتی گرفت.

۷ بیت امکان کدگذاری از ۱۲۸ کاراکتر را می‌دهد. با توجه به این‌که کاراکترهای انگلیسی فقط به ۱۲۸ عدد نیاز داشتند، استفاده از ۷ بیت به معنی به حداقل رساندن هزینه انتقال این داده‌هاست. (برعکس ۸ بیت)

۳۲ کاراکتر اول اسکی برای کاراکترهای کنترلی استفاده می‌شود. این کاراکترها برای انتقال دستورالعمل‌های خاصی به دستگاه‌های دیگر مثل پرینتر مورد استفاده قرار می‌گیرد. برای مثال کاربر می‌تواند یک خط را … کند، یک کاراکتر را حذف کند و در برخی دستگاه‌ها مثل «تله تایپ مدل ۳۳» (TeleType model 33) زنگ را به صدا درآورد.

تله تایپ

یک نمونه تله‌تایپ مدل 33

انجمن استاندارد آمریکا اولین نسخه اسکی را در سال ۱۹۶۳ منتشر کرد و در سال ۱۹۶۷ اصلاح نمود. آخرین به‌روزرسانی اصلی در سال ۱۹۸۶ بود. اسکی اولین بار برای استفاده تجاری در شبکه مخابرات آمریکا دیده شد.

در ۱۱ مارچ ۱۹۶۸، رئیس‌جمهور وقت آمریکا «لیندون بی. جانسون» (Lyndon B. Johnson) دستور داد باید همه کامپوترهای «دولت فدرال آمریکا»  استاندارد اسکی را پشتیبانی کنند. به این ترتیب جایگاه اسکی در تاریخ کامپیوتر آمریکا محکم شد.

طرح‌های کدگذاری دیگری نظیر «الفبای بین‌المللی تلگراف نسخه ۲» (International Telegraph alphabet No.2, ITA2) در آن زمان وجود داشت ولی اسکی به سرعت به استاندارد اصلی زبان انگلیسی تبدیل شد. اسکی رایج‌ترین نوع کدگذاری بود، تا اینکه در سال ۲۰۰۷ «یو. تی. اف. ۸» (UTF-8) از آن پیشی گرفت.

جدول اسکی

برای تشخیص مقدار اسکی یک کاراکتر، رایج‌ترین روش جستجو در جدول اسکی است. جدول اسکی هر کاراکتر را به مقدار مشخصی بین ۰ تا ۱۲۷ ربط می‌دهد.

کاراکترهای کنترلی

کاراکترهای کنترلی ۳۲ خط اول جدول را به خود اختصاص می‌دهند.  این کاراکترها چاپ نمی‌شوند، در عوض برای ارسال یک دستور به دستگاه‌های دیگر نظیر پرینتر استفاده می‌شود. سیستم 8 تایی که در جدول بالا آورده شده است برای سیستم‌های قدیمی استفاده شده و به نوعی منسوخ است.

ده دهی دو دویی 8تایی 16تایی کاراکتر توضیحات
0 0000 0000 000 00 NUL خالی
1 0000 0001 001 01 SOH شروع سرتیتر
2 0000 0010 002 02 STX شروع متن
3 0000 0011 003 03 ETX پایان متن
4 0000 0100 004 04 EOT پایان ارسال
5 0000 0101 005 05 ENQ جستجو
6 0000 0110 006 06 ACK تایید شد
7 0000 0111 007 07 BEL زنگ
8 0000 1000 010 08 BS پسبرد
9 0000 1001 011 09 TAB فاصله افقی
10 0000 1010 012 0A LF خط جدید
11 0000 1011 013 0B VT فاصله عمودی
12 0000 1100 014 0C FF صفحه جدید
13 0000 1101 015 0D CR بازگشت محموله
14 0000 1110 016 0E SO بیرون آوردن
15 0000 1111 017 0F SI داخل کردن
16 0001 0000 020 10 DLE خروج از داده ها
17 0001 0001 021 11 DC1 کنترل 1 دستگاه
18 0001 0010 022 12 DC2 کنترل 2 دستگاه
19 0001 0011 023 13 DC3 کنترل 3 دستگاه
20 0001 0100 024 14 DC4 کنترل 4 دستگاه
21 0001 0101 025 15 NAK تایید نشده
22 0001 0110 026 16 SYN synchronous idle
23 0001 0111 027 17 ETB پایان بلوک انتقال
24 0001 1000 030 18 CAN لغو
25 0001 1001 031 19 EM پایان رسانه
26 0001 1010 032 1A SUB جایگزینی
27 0001 1011 033 1B ESC خروج
28 0001 1100 034 1C FS جداکننده فایل
29 0001 1101 035 1D GS جداکننده گروهی
30 0001 1110 036 1E RS جداکننده ضبط
31 0001 1111 037 1F US جداکننده واحد
127 0111 1111 177 7F DEL پاک کردن

کاراکترهای قابل چاپ

95 کاراکتر قابل چاپ در اسکی وجود دارند. توجه کنید که فاصله هم یک کاراکتر محسوب می‌شود.

ده دهی دو دویی 8تایی 16تایی کاراکتر
32 0010 0000 040 20 فاصله
33 0010 0001 041 21 !
34 0010 0010 042 22
35 0010 0011 043 23 #
36 0010 0100 044 24 $
37 0010 0101 045 25 %
38 0010 0110 046 26 &
39 0010 0111 047 27
40 0010 1000 050 28 (
41 0010 1001 051 29 )
42 0010 1010 052 2A *
43 0010 1011 053 2B +
44 0010 1100 054 2C ,
45 0010 1101 055 2D
46 0010 1110 056 2E .
47 0010 1111 057 2F /
48 0011 0000 060 30 0
49 0011 0001 061 31 1
50 0011 0010 062 32 2
51 0011 0011 063 33 3
52 0011 0100 064 34 4
53 0011 0101 065 35 5
54 0011 0110 066 36 6
55 0011 0111 067 37 7
56 0011 1000 070 38 8
57 0011 1001 071 39 9
58 0011 1010 072 3A :
59 0011 1011 073 3B ;
60 0011 1100 074 3C <
61 0011 1101 075 3D =
62 0011 1110 076 3E >
63 0011 1111 077 3F ?
64 0100 0000 100 40 @
65 0100 0001 101 41 A
66 0100 0010 102 42 B
67 0100 0011 103 43 C
68 0100 0100 104 44 D
69 0100 0101 105 45 E
70 0100 0110 106 46 F
71 0100 0111 107 47 G
72 0100 1000 110 48 H
73 0100 1001 111 49 I
74 0100 1010 112 4A J
75 0100 1011 113 4B K
76 0100 1100 114 4C L
77 0100 1101 115 4D M
78 0100 1110 116 4E N
79 0100 1111 117 4F O
80 0101 0000 120 50 P
81 0101 0001 121 51 Q
82 0101 0010 122 52 R
83 0101 0011 123 53 S
84 0101 0100 124 54 T
85 0101 0101 125 55 U
86 0101 0110 126 56 V
87 0101 0111 127 57 W
88 0101 1000 130 58 X
89 0101 1001 131 59 Y
90 0101 1010 132 5A Z
91 0101 1011 133 5B [
92 0101 1100 134 5C
93 0101 1101 135 5D ]
94 0101 1110 136 5E ^
95 0101 1111 137 5F _
96 0110 0000 140 60 `
97 0110 0001 141 61 a
98 0110 0010 142 62 b
99 0110 0011 143 63 c
100 0110 0100 144 64 d
101 0110 0101 145 65 e
102 0110 0110 146 66 f
103 0110 0111 147 67 g
104 0110 1000 150 68 h
105 0110 1001 151 69 i
106 0110 1010 152 6A j
107 0110 1011 153 6B k
108 0110 1100 154 6C l
109 0110 1101 155 6D m
110 0110 1110 156 6E n
111 0110 1111 157 6F o
112 0111 0000 160 70 p
113 0111 0001 161 71 q
114 0111 0010 162 72 r
115 0111 0011 163 73 s
116 0111 0100 164 74 t
117 0111 0101 165 75 u
118 0111 0110 166 76 v
119 0111 0111 167 77 w
120 0111 1000 170 78 x
121 0111 1001 171 79 y
122 0111 1010 172 7A z
123 0111 1011 173 7B {
124 0111 1100 174 7C |
125 0111 1101 175 7D }
126 0111 1110 176 7E ~

بیشتر بدانید

روش‌های کدگذاری زیادی وجود دارند. معروف‌ترین آن‌ها در سطح وب UTF-8 است، که طبق آمار 87% از همه صفحات وب را به خود اختصاص داده است.

UTF-8 با اسکی سازگار است؛ به این معنا که 128 کاراکتر اول هر دو یکسان هستند. UTF می‌تواند  از دو، سه یا چهار بایت هم برای کدگذاری رسم‌‌الخط‌هایی مانند لاتین، یونانی، سیریلیک، عربی، چینی، کره‌ای و ژاپنی استفاده کند.

 

منبع

بر اساس رای ۱۰۳ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
۱۷ thoughts on “آشنایی با کدهای اسکی (ASCII) — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

ببخشید طبق نوشته های بالا اگر ما حرف a را وارد کنیم در کامپوتر کد 0110 0001 دستور داده میشود در حالی که اگر ما عدد 97 رو هم وارد کنیم باز هم همین کد وارد میشه سوالم اینه وقتی کد هر دو یکیه کامپیوتر چطور تشخیص میده که ما عدد رو وارد کردیم یا حرف رو ؟؟؟؟

هر عدد هم کد اسکی مخصوص خود رو داره. مثلا کد اسکی عدد9 برابر 57 و کد اسکی عدد 7 برابر 55 هست. البته اگه عدد به صورت رشته ارسال بشه.

اعداد منفی کد چه کاراکترهایی هستند؟ به دلیل مواجه شدن با متن زیر این سوال را می پرسم:

اگر از نوع داده Char برای نگهداری مقادیر integer استفاده می کنید، شما همیشه باید تعیین کنید که آن متغیر دارای علامت (signed) یا بدون علامت (unsigned) می باشد. یک متغیر دارای علامت (signed) از نوع char می تواند مقادیر عددی بین 128- تا 127 را در خود نگهدارد. یک متغیر بدون علامت (unsigned) از نوع char می تواند مقادیر عددی بین 0 و 255 را در خودش نگهداری کند.

عالی هست. باتشکر.

سلام ببخشید منظورتون از 8 تایی و یا 16 تایی در جدول اسکی چی هست؟ لظفا جواب بدین ممنون

سلام ممنون از اصلاحاتی که انجام دادید
توی جدول کد های باینری(دودویی) رو برعکس نوشتید یعنی باید جای 4بیت ها(بایت ها) با هم عوض بشه تا درست نشون بده
مثلا 1 نوشتید 0000 0001 در صورتی که 0001 0000 میشه
+
توی جدول اول 0 تا 31 که چاپ نمیشن میشه 32 کاراکتر کنترلی ولی شما 127 رو هم نوشتید که باید بره جدول پایین
+
شما نوشتید 95 کاراکتر قابل چاپ وجود داره از 32 تا 127 میشه 95 تا ولی توی جدول تا 126 نوشتید پس کاراکتر 127 عمل delete رو جا انداختید
البته بنده نیز سوالی خدمتتان دارم
با توجه به اینکه کاراکتر 127 عمل دیلیت انجام میده درست است که جزو کاراکتر های قابل چاپ دسته بندیش کنیم؟چون خروجی ندارد
ممنون از مقاله ی خوبتون و از این دست مقالات رایگان فرا درس که مثل باقی سایت ها صرفا ترجمه نیست بسیار کار پسندیده و قابل احترامی است.مقالات فرادرس یه چیزی مثل ویکیپدیا ایرانی البته با مطالب دقیق تر است.
این کار رو ادامه بدید

با سلام؛

از همراهی شما با مجله فرادرس و ارائه بازخوردهایتان سپاس‌گزاریم. شیوه نمایش اعداد در جدول اصلاح شد و در حال حاضر کدها به درستی نمایش داده می‌شوند. تعداد موارد مشخص شده در حدول ۹۵ مورد است؛ برای محاسبه باید خود ۳۲ و ۱۲۷ را هم در نظر بگیرید که در این صورت می‌شود ۹۵ مورد (با شمارش سطرهای جدول این مورد بهتر شفاف می‌شود). خیر؛ کاراکترهای اسکی قابل چاپ صرفا مواردی هستند که در این جدول ارائه شده‌اند و عمل Delete جزو این جدول محسوب نمی‌شود.

از بازخورد مثبت و انرژی‌بخش و پیام محبت‌آمیز شما قدردانیم. شاد؛ پیروز و تندرست باشید.

پیام hello اول صفحه هم رمز نگاریش یه هشت کم گذاشتین
15 12 12 5 8

با سلام؛

از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم. اصلاحات لازم در متن انجام شد.

سپاس‌گزارم.

ممنون از اطلاعات خوبتون وای
طبق گوگل
ANSI, which stands for the “American National Standards Institute”
هست

با سلام؛

از همراهی شما با مجله فرادرس و ارائه بازخوردهایتان سپاس‌گزاریم. تایپوی موجود در متن اصلاح شد.

با سپاس.

سلام
بین کاراکتر های ] و [ هیچی نیست …
این دقیقا چه کاراکتریه؟؟؟؟
با کد اسکی 92

سلام وقتتون بخیر،ی سوال هست ک خیلی ذهن منو ب خودش مشغول کرده،من 2 سال پیش فارق التحصیل شدم از رشته ی سخت افزار و الکترونیک،2 مدرک دارم و اشنایی کامل با مدار منطقی دارم،کاملا کد های اسکی رو هم میدونم ولی واقعا کاربردشونو نمیفهمم،میدونم خیلی مهم هستن ولی نمیدونم اصلا چطور دانشمندان زبان های برنامه نویسی رو ساختن،اونا چطور با استفاده از لامپ ها ک 0 و 1 بودند یعنی خاموش و روشن،ترانزیستور ها رو میسازن ولی نمیفهمم چطور این درک رو ب کامپیوتر میدن ک صحبت و زبان ما رو بفهمه

برای درک بهتر این مطلب کتاب معماری کامپیوتر را مطالعه کنید و اگر می خواهید ریشه ای تر مطالعه کنید در مورد ساخت گیت های منطقی با استفاده از قطعات الکترونیکی تحقیق کنید و در نهایت زبان اسمبلی را که بخوانید خیلی چیزا دستگیرتان می شود.

با سلام یک کد هست با توجه به تخصصتون امکانش هست تشخیص بدین مربوط به چه نوع کد گذاری و برای تشخیصش چه کار میشه کرد با تشکر
MD5 HASH خروجی 1edce0 00de2c7b7e صفر

با سلام؛

از همراهی شما با مجله فرادرس سپاس‌گزاریم. MD5 یک تابع هش است که به طور گسترده‌ای از آن در حوزه‌های گوناگون استفاده می‌شود. تابع هش MD5 یک هش ۱۲۸ بیتی تولید می‌کند. این تابع هش در ابتدا با این هدف ساخته شده بود که به عنوان یک تابع هش رمزنگاری مورد استفاده قرار بگیرد ولی به دلیل آسیب‌پذیری‌های امنیتی متعدد، برای این موضوع معمولا استفاده نمی‌شود. کاربرد اصلی این تابع هش برای سنجش درستی اطلاعات در مقصد (چک‌سام)، به طور خاص در شبکه‌های کامپیوتری، مورد استفاده قرار می‌گیرد. به بیان ساده‌تر، وقتی یک فایل وجود دارد و این فایل مبادله می‌شود، MD5 آن پیش از مبادله با MD5 آن پس از مبادله مقایسه می‌شود تا مشخص شود فایل درست و بدون اشکال مبادله شده است یا خیر. در حال حاضر، رمزگشاهای مختلفی برای هش‌های MD5 وجود دارند (نشانگر آسیب‌پذیری امنیتی بالای این هش) که با جستجوی عبارت «md5 hash decoder» می‌توانید به آن‌ها دسترسی پیدا کنید. در همین راستا، مطالعه مطلب زیر نیز به شما پیشنهاد می‌شود.

تابع هش یا درهم سازی (Hash Function) چیست؟ — به زبان ساده

پیروز، شاد و تندرست باشید.

تشکر ، جالب بود.

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *