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

۱۸۶۲۲ بازدید
آخرین به‌روزرسانی: ۰۸ آذر ۱۴۰۲
زمان مطالعه: ۱۱ دقیقه
آشنایی با کدهای اسکی (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تاییکاراکترتوضیحات
00000 000000000NULخالی
10000 000100101SOHشروع سرتیتر
20000 001000202STXشروع متن
30000 001100303ETXپایان متن
40000 010000404EOTپایان ارسال
50000 010100505ENQجستجو
60000 011000606ACKتایید شد
70000 011100707BELزنگ
80000 100001008BSپسبرد
90000 100101109TABفاصله افقی
100000 10100120ALFخط جدید
110000 10110130BVTفاصله عمودی
120000 11000140CFFصفحه جدید
130000 11010150DCRبازگشت محموله
140000 11100160ESOبیرون آوردن
150000 11110170FSIداخل کردن
160001 000002010DLEخروج از داده ها
170001 000102111DC1کنترل 1 دستگاه
180001 001002212DC2کنترل 2 دستگاه
190001 001102313DC3کنترل 3 دستگاه
200001 010002414DC4کنترل 4 دستگاه
210001 010102515NAKتایید نشده
220001 011002616SYNsynchronous idle
230001 011102717ETBپایان بلوک انتقال
240001 100003018CANلغو
250001 100103119EMپایان رسانه
260001 10100321ASUBجایگزینی
270001 10110331BESCخروج
280001 11000341CFSجداکننده فایل
290001 11010351DGSجداکننده گروهی
300001 11100361ERSجداکننده ضبط
310001 11110371FUSجداکننده واحد
1270111 11111777FDELپاک کردن

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

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

ده دهیدو دویی8تایی16تاییکاراکتر
320010 000004020فاصله
330010 000104121!
340010 001004222"
350010 001104323#
360010 010004424$
370010 010104525%
380010 011004626&
390010 011104727'
400010 100005028(
410010 100105129)
420010 10100522A*
430010 10110532B+
440010 11000542C,
450010 11010552D-
460010 11100562E.
470010 11110572F/
480011 0000060300
490011 0001061311
500011 0010062322
510011 0011063333
520011 0100064344
530011 0101065355
540011 0110066366
550011 0111067377
560011 1000070388
570011 1001071399
580011 10100723A:
590011 10110733B;
600011 11000743C<
610011 11010753D=
620011 11100763E>
630011 11110773F?
640100 000010040@
650100 000110141A
660100 001010242B
670100 001110343C
680100 010010444D
690100 010110545E
700100 011010646F
710100 011110747G
720100 100011048H
730100 100111149I
740100 10101124AJ
750100 10111134BK
760100 11001144CL
770100 11011154DM
780100 11101164EN
790100 11111174FO
800101 000012050P
810101 000112151Q
820101 001012252R
830101 001112353S
840101 010012454T
850101 010112555U
860101 011012656V
870101 011112757W
880101 100013058X
890101 100113159Y
900101 10101325AZ
910101 10111335B[
920101 11001345C
930101 11011355D]
940101 11101365E^
950101 11111375F_
960110 000014060`
970110 000114161a
980110 001014262b
990110 001114363c
1000110 010014464d
1010110 010114565e
1020110 011014666f
1030110 011114767g
1040110 100015068h
1050110 100115169i
1060110 10101526Aj
1070110 10111536Bk
1080110 11001546Cl
1090110 11011556Dm
1100110 11101566En
1110110 11111576Fo
1120111 000016070p
1130111 000116171q
1140111 001016272r
1150111 001116373s
1160111 010016474t
1170111 010116575u
1180111 011016676v
1190111 011116777w
1200111 100017078x
1210111 100117179y
1220111 10101727Az
1230111 10111737B{
1240111 11001747C|
1250111 11011757D}
1260111 11101767E~

بیشتر بدانید

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

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

 

بر اساس رای ۱۱۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
SparkFun
۱۸ دیدگاه برای «آشنایی با کدهای اسکی (ASCII) — به زبان ساده (+ دانلود فیلم آموزش گام به گام)»

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

عدد ۹۷ یعنی ۹ به علاوه ۷ وقتی ورودی کامپیوتر رو ascii تنظیم شده دیگه خود اعداد جدای از غالب اسکی مفهوم ندارن

هر عدد هم کد اسکی مخصوص خود رو داره. مثلا کد اسکی عدد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) چیست؟ — به زبان ساده

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

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

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

نظر شما چیست؟

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