|
کدگذاری چیست و چرا کدگذاری می کنیم؟
به دلیل اینکه کامپیوترها فقط اعداد Binary یا دودویی (1و0) را می فهمند، بنابراین تمام اطلاعات در هنگام ورود به کامپیوترها باید بصورت داده های دودویی نشان داده شوند . برای این منظور اطلاعات کد گذاری میشوند. یعنی اطلاعات ورودی همچون حروف و یا علائم و ... بصورت یکسری اعداد صفر یا یک در می آیند.
همانطور که می دانید سیستم اعداد هگزا دسیمالی، بر مبنای 16 می باشد (دسیمال مبنای 10 و باینری مبنای 2 و اکتال مبنای 8 می باشد) بنابراین علائم نمایش هگزا دسیمال اعداد از صفر تا 9 و حروف از A تا F می باشد. جدول زیر به
مقایسه بناهای 10 و و 16 می پردازد.
|
Hexadecimal (base 16) or HEX
|
Binary (base 2)
|
Decimal
|
|
0
|
0000
|
0
|
|
1
|
0001
|
1
|
|
2
|
0010
|
2
|
|
3
|
0011
|
3
|
|
4
|
0100
|
4
|
|
5
|
0101
|
5
|
|
6
|
0110
|
6
|
|
7
|
0111
|
7
|
|
8
|
1000
|
8
|
|
9
|
1001
|
9
|
|
A
|
1010
|
10
|
|
B
|
1011
|
11
|
|
C
|
1100
|
12
|
|
D
|
1101
|
13
|
|
E
|
1110
|
14
|
|
F
|
1111
|
15
|
روشهای زیادی برای کدگذاری وجود دارند که من می خواهم امروز دو تا از معروفترین آنها را برایتان شرح دهم:
کد اسکی (ASCII Code= American Standard Code for Information Interchange) :
یکی از روشهای کدگذاری متداول که برای کاراکترهای قابل چاپ و غیر قابل چاپ بکار می رود.
هر کاراکتر در روش ASCII با 7 یا 8 بیت نمایش داده می شود.
به عنوان مثال می خواهیم کلمه Network را ابتدا به باینری تبدیل کرده و سپس به هگزا دسیمال تبدیل کنیم به ترتیب زیر عمل می کنیم:
|
K
|
R
|
O
|
W
|
T
|
E
|
N
|
|
1101011
|
1110010
|
1101111
|
1110111
|
1110100
|
1100101
|
1001110
|
و حالا به هگزادسیمال می شود:
|
1101011
|
1110010
|
1101111
|
1110111
|
1110100
|
1100101
|
1001110
|
|
6b
|
72
|
6F
|
77
|
74
|
65
|
4E
|
مطالب من در مورد تبدیل باینری به دسیمال و دسیمال به باینری را حتما بخوانید.
کد گذاری ASCII از 7 یا 8 بیت استفاده می کند و حروف را به لاتین نمایش می دهد و می تواند تا 256 کاراکتر را نمایش دهد. این کدگذاری علائم ریاضی و علمی را نمی تواند پشتیبانی کند.
دوستان حتما شما در نرم افزار های گرافیکی مثل فوتوشاپ یا کورل و فری و غیره color picker را دیده اید که امکان انتخاب رنگ را به شما می دهد اگر در قسمت پایین آن توجه کنید کد هگزادسیمال هر رنگ را می توانید ببینید به عنوان مثال کد رنگ سفید شش تا F (FFFFFF) است.
جدول کدهای اسکی :
کد گذاری دیگر UNICODE یا Universal Code یا همان کد جهانی است
کد جهانی یک استاندارد 16 بیتی کدگذاری برای نمایش حروف و علائم در بیشتر زبانهای جهان است.
اگر شما در Browser اینترنت اکسپلورر در صفحه راست کلیک کرده و روی Encoding قرار بگیرید Unicode را خواهید دید. از آنجائیکه Unicode از 16 بیت استفاده می کند. بنابراین می تواند 64000 کاراکتر را نمایش دهد. یک کاراکتر در کد جهانی با 16 بیت دودویی نمایش داده می شود که معادل 4 رقم در سیستم اعداد در مبنای 16 می باشد. مثلا کاراکتر B در روش کد گذاری Unicode معادل U0041H است که در آن U معرف Unicode می باشد.
سیستم کدگذاری اسکی شامل اعداد 16 (00) تا 16(FF) می باشد. برای تبدیل کد اسکی به کد جهانی باید دو صفر (00) به سمت چپ کد اسکی اضافه نمود. بنابراین کد جهانی، سیستم کد اسکی را با (0000)16 تا (00FF)16 نمایش می ده. برای مثال کاراکتر A با کد جهانی معادل U0041H می باشد. کد جهانی به بلوکهایی از کد تقسیم بندی می شود که هر بلوک آن اختصاص به یک زبان دارد.
یونیکد به هر نویسه یک اعداد یکتا اختصاص میدهد،
مستقل از محیط،
مستقل از برنامه،
و مستقل از زبان.
اصولاً کامپیوترها فقط با عددها کار میکنند و حروف و نویسههای دیگر را با تخصیص عددی به هر یک از آنها ذخیره میکنند. تا قبل از اختراع یونیکد، صدها سیستم کُدگذاری مختلف برای تخصیص این اعداد وجود داشت. نویسههای هیچ کُدگذاریای بهتنهایی کافی نبود: مثلاً اتحادیهٔ اروپا به چندین کُدگذاری مختلف برای در بر گرفته شدن همهٔ زبانهایش نیاز داشت. حتی برای زبانی مثل انگلیسی نیز هیچ کُدگذاریای بهتنهایی برای همهٔ حروف، علایم نقطهگذاری، و نمادهای فنی متداول کافی نبود.
این سیستمهای کدگذاری با هم تعارض نیز داشتند. یعنی دو کُدگذاری مختلف ممکن بود از اعداد یکسانی برای دو نویسهٔ مختلف، یا از اعداد مختلفی برای نویسههای یکسان استفاده کنند. با وجود این که هر کامپیوتری (بالاخص کارگزارهای شبکه) لازم است از کُدگذاریهای مختلف و متعددی پشتیبانی کند، هرگاه دادهها از کُدگذاریها یا محیطهای مختلف عبور کنند، در معرض خطر تحریف قرار میگیرند.
یونیکد دارد این وضع را تغییر میدهد!
یونیکد به هر نویسه یک عدد یکتا اختصاص میدهد، مستقل از محیط، مستقل از برنامه، و مستقل از زبان. استاندارد یونیکد را پیشتازان صنعت کامپیوتر، از قبیل شرکتهایی چون آیبیام، اَپل، اچپی، اورکل، جاستسیستم، سان، سایبیْس، مایکروسافت، یونیسیس، SAP و بسیاری شرکتهای دیگر پذیرفتهاند. استانداردهایی چون XML، جاوا، اکمااسکریپت (جاوااسکریپت)، LDAP، Corba 3.0، WML، و غیره، یونیکد را ملزم میدانند و روش رسمی پیادهسازی استاندارد ISO/IEC 10646 نیز یونیکد است. یونیکد در بسیاری از سیستمعاملها، همهٔ مرورگرهای امروزی، و بسیاری از محصولات دیگر پشتیبانی میشود. پیدایش استاندارد یونیکد، و در دسترس بودن ابزارهایی که از آن پشتیبانی میکنند، از چشمگیرترین روندهای جدید در صحنهٔ جهانی فناوریهای نرمافزاری بوده است.
گنجاندن یونیکد در وبگاهها و برنامههای کاربردی کارخواه‐کارساز یا چندلایهای، در مقایسه با استفاده از مجموعهنویسههای قدیمی، میتواند باعث کاهش قابل ملاحظهٔ هزینهها شود. یونیکد این امکان را فراهم میکند که یک محصول نرمافزاری واحد یا یا یک وبگاه واحد بتواند بدون نیاز به طراحی و مهندسی مجدد، در محیطها، زبانها، و کشورهای متعددی کار کند. یونیکد به دادهها نیز امکان میدهد که بدون تحریف از سیستمهای مختلف عبور داده شوند.
دربارهٔ کنسرسیوم یونیکد
کنسرسیوم یونیکد سازمان غیرانتفاعیای است که برای بهبود، گسترش، و ترویج استفاده از استاندارد یونیکد تأسیس شده است، استانداردی که شیوهٔ بازنمایی متون را در محصولات نرمافزاری و استانداردهای امروزی مشخص میکند. اعضای این کنسرسیوم طیف گستردهای را از شرکتها و سازمانهای فعال در صنعت پردازش اطلاعات، در بر میگیرند. پشتیبانی مالی این کنسرسیوم صرفاً از طریق حق عضویت اعضا است. عضویت در کنسرسیوم یونیکد برای سازمانها و افراد هر جای دنیا که استاندارد یونیکد را پشتیبانی کنند و بخواهند در گسترش و پیادهسازی آن کمک کنند، آزاد است.
|