گیاهی ترین گیاهی ترین AnzanDigital فروشگاه
خانه / الکترونیک / کاراکتر های ASCII

کاراکتر های ASCII

ASCII

معرفی:

اگر کامپیوتر ها به صورت باینری عملیات را انجام می دهند، پس ما چگونه نوشته ها و کلمات را ذخیره میکنیم؟ ما اعداد را به کاراکتر ها نسبت میدهیم. این عمل با عنوان کدگذاری کاراکتر شناخته می شود.

برای فهمیدن چگونگی کدگذاری کاراکتر، یک مثال ساده را بررسی کنیم. ابتدا عدد های 1-26 را به الفبای انگلیسی اختصاص دهیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
a b c d e f g h i j k l m n o p q r s t u v w x y z

برای نوشتن یک مثال ساده، ما اعداد را به جای حروف می گذاریم. برای مثال 8 5 12 12 15 . با استفاده از اعداد، ما کلمه ی h e l l o را ساخته ایم.
اما برای همه ی الفبای انگلیسی – شامل حروف کوچک و بزرگ، اعداد و نشانه گذاری، ما نیازمند تعداد بیشتری از 26 کاراکتر داریم. در نتیجه، کد استاندارد آمریکایی برای تبادل اطلاعات به اختصار ASCII یکی از استاندارد های کدگذاری کاراکتر را برای کامپیوتر ها ساخته است.

چه چیزی باید یاد بگیرید:

  • تاریخ مختصری از ASCII
  • چگونه ترجمه شدن اعداد دسیمال، باینری و هگزادسیمال به ASCII

پیشنهاد یادگیری :

بر روی چندین موضوع قبل اینکه وارد آموزش شوید مروری داشته باشید :

  • باینری – یادگیری اینکه چگونه یک کامپیوتر اعداد را ذخیره می کند. این مورد قبل شروع تبدیل اعداد به کاراکتر ها سودمند است.
  • هگزادسیمال – هگزا دسیمال برای بیان اعداد باینری در گروه های 4 بیتی است.
  • نصب رابط کاربری آردوینو – آردوینو راه حل مناسبی برای پرینت کارکاتر های ASCII است.

تاریخچه:

اسکی اولین بار در سال ۱۹۶۷ ابداع گردید و آخرین بار در سال ۱۹۸۶ دچار تغییر شد. مجموعه کاراکتر اسکی خود به دو نوع تقسیم می‌شود. نوع 7 بیتی که با نام اسکی استاندارد (Standard ASCII) شناخته شده و دارای 2 به توان 7 یعنی 128 کاراکتر مختلف است که از 0 تا 127 استفاده می‌شوند.

نوع دیگر آن حالت 8 بیتی است که با نام اسکی توسعه یافته (Extended ASCII) شناخته شده و دارای 2 به توان 8 یعنی 256 کاراکتر مختلف است که از 0 تا 255 استفاده می‌شود. حالت توسعه یافته جدا از حالت استاندارد نیست بلکه از 0 تا 127 کاراکتر اول آن درست مانند حالت استاندارد بوده و فقط بقیه کاراکترها به بعد از آن (از 128 تا 255) اضافه شده است. کاراکترهای اضافی دارای هیچ استانداردی نبوده و ممکن است در دستگاه‌ها و کامپیوترهای مختلف فرق داشته باشد مثلاً در کامپیوتر X کاراکتر اسکی 150 معادل حرف û و در کامپیوتر Y معادل حرف ب باشد اما کاراکترهای قبل از 128 همگی ثابت هستند.

در هر دو نوع ذکر شده (7 و 8 بیتی) تعداد 32 کاراکتر اول (یعنی از 0 تا 31) و آخرین کاراکتر (127) با عنوان کاراکترهای کنترلی (Control Characters) شناخته می‌شود. این کاراکترها غیرقابل چاپ بوده و فقط برای کنترل متن مورد استفاده قرار می‌گیرد (مثلاً مشخص کننده ابتدای هدر، حذف، کنسل و …).

Dec Bin Oct Hex Char توصیف کاراکتر های کنترلی
0 0000 0000 000 00 NUL null
1 0000 0001 001 01 SOH start of heading
2 0000 0010 002 02 STX start of text
3 0000 0011 003 03 ETX end of text
4 0000 0100 004 04 EOT end of transmission
5 0000 0101 005 05 ENQ enquiry
6 0000 0110 006 06 ACK acknowledge
7 0000 0111 007 07 BEL bell
8 0000 1000 010 08 BS backspace
9 0000 1001 011 09 TAB horizontal tab
10 0000 1010 012 0A LF line feed, new line
11 0000 1011 013 0B VT vertical tab
12 0000 1100 014 0C FF form feed, new page
13 0000 1101 015 0D CR carriage return
14 0000 1110 016 0E SO shift out
15 0000 1111 017 0F SI shift in
16 0001 0000 020 10 DLE data link escape
17 0001 0001 021 11 DC1 device control 1
18 0001 0010 022 12 DC2 device control 2
19 0001 0011 023 13 DC3 device control 3
20 0001 0100 024 14 DC4 device control 4
21 0001 0101 025 15 NAK negative acknowledge
22 0001 0110 026 16 SYN synchronous idle
23 0001 0111 027 17 ETB end of transmission block
24 0001 1000 030 18 CAN cancel
25 0001 1001 031 19 EM end of medium
26 0001 1010 032 1A SUB substitute
27 0001 1011 033 1B ESC escape
28 0001 1100 034 1C FS file separator
29 0001 1101 035 1D GS group separator
30 0001 1110 036 1E RS record separator
31 0001 1111 037 1F US unit separator
127 0111 1111 177 7F DEL delete

 بقیه کاراکترها یعنی از 32 تا 126 قابل چاپ هستند. این کاراکترها شامل نمادها، حروف و اعداد انگلیسی هستند. در حالت توسعه یافته، از کاراکترهای 128 تا 255 نیز قابل چاپ هستند.

Dec Bin Oct Hex Char
32 0010 0000 040 20 space
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 ?

 

Dec Bin Oct Hex Char
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 _

 

Dec Bin Oct Hex Char
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 ~

این را امتحان کنید !

اگر مایلید توسط کدگذاری ASCII چیزی را پرینت کنید. می توانید از آردوینو کمک بگیرید. آردوینو را باز کنید و کد زیر را در آن قرار دهد:

void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.write(0x48); // H
Serial.write(0x65); // e
Serial.write(0x6C); // l
Serial.write(0x6C); // l
Serial.write(0x6F); // o
Serial.write(0x21); // !
Serial.write(0x0A); // \n
delay(1000);
}

بر روی آردوینو آن را اجرا کنید. کنسول سریال را باز کنید. شما باید “!Hello” را مشاهده کنید که تکرار می شود.

Arduino_Hello
Arduino_Hello

توجه کنید که بایستی از ()Serial.write به جای ()Serial.print استفاده کنید. دستور ()write بایت خام را در ارتباط سریال ارسال می کند، در حالی که ()print اعداد را تفسیر کرده و نسخه ی کدگذاری شده ی ASCII ی عدد را ارسال می کند. برای مثال:

(0x48)اSerial.print در کنسول 72 را پرینت می کند.

همچنین اگر از کاراکتر ASCII نمونه 0x0A استفاده کنیم، باعث میشود اشاره گر به خط بعدی برود، زیرا که 0x0A از کاراکتر های کنترلی است.

منابع و ادامه:

مجموعه کاراکتر های بسیاری وجود دارد، کدگذاری پرکاربرد برای فضای وب UTF-8 است، در سال 2016 بیش از 87% تمام صفحات وب از این نوع کدگذاری استفاده کرده اند.

UTF-8 با توجه به پیشینه اش با ASCII سازگار است، به این معنی که 128 کاراکتر ابتدایی آن با ASCII یکسان است. UTF-8 می تواند با کدگذاری 2، 3 و 4 بایتی با زبان های مدرن نوشتاری استفاده شود.

آگاهی از اساس کدگذاری ASCII می تواند در کار با ترمینال سریال سودمند باشد. اگر تمایل داشته باشید جدول ASCII را به صورت تصویر در اختیار داشته باشید بر روی لینک زیر کلیک کنید.

ascii_table_(bir-robotic.ir)

کانال تلگرام بیر رباتیک

درباره Ahrovani Hadi

مشاهده بیشتر

arducopter simulation

شبیه سازی اتوپایلوت و تشخیص کد های Aruco

ویدئوی پیوست شده شبیه سازی اتوپایلوت ardupilot با شبیه ساز gazebo را نشان میدهد. این …

دیدگاه بگذارید

اولین نفری باشید که دیدگاه میگذارد

با خبر سازی از
avatar

wpDiscuz