Programming

මොකක්ද මේ ASCII (American Standard Code for Information interchange) කියන්නේ?

මොකක්ද මේ ASCII (American Standard Code for Information interchange) කියන්නේ

මොකක්ද මේ ASCII (American Standard Code for Information interchange) කියන්නේ?

හිතන්නකෝ, ඔයා Word document  එකක open  කරලා  keyboard එකේ මොකක් හරි type කරනවා කියලා . එහෙම  ඔයා keyboard  එකේ type  කරපු letters ඔයාට දැන් screen  එකේ පේනවා.  කොහොමද එහෙම උනේ? අපි type  කරන දේවල්  PC  එකට තේරෙනවද? අද අපි ඒ ගැන කතා කරමු. 

අපි keyboard  එකෙන් එක එක අකුරු  type කරාට ඇත්තටම  PC එකට Lap එකට මේවා තේරුම් ගන්න බෑ. ඇත්තටම PC එකට Lap එකට තේරුම් ගන්න පුලුවන්  1, 0 කියන binary values විතරයි.

දැන් ඔයා හිතනවා ඇති මොනවද මේ binary values කියලා. හරි හිතන්නකෝ ඔයාගේ PC එක Lap එක charge  වෙන්න දැම්මා කියලා. එතකොට  ඔයාගේ PC එක, Lap එක කොහොමද  current  එක එනවා කියලා තේරුම් ගන්නේ? PC එකට Lap එකට current එක එනවා කියලා තේරුම් ගන්න පුලුවන් signals වලින්. ඒ කියන්නේ current  එක එනවා නම් 1 , current  එක එන්නේ නැත්නම් 0. 

මෙන්න මේ විදියට  1 සහ 0 වලින්  signals එන එකට තමයි binary values  කියලා කියන්නේ. ඉතිං අපි keyboard  එකේ මොනවා හරි type  කරාමත් අපේ Lap එක PC එක මේවා තේරුම් ගන්නේ මේ වගේ binary signals විදියට. ඒක නිසා මිනිස්සු මේ විදියට  type  කරන දේවල් PC එකට Lap එකට තේරුම් ගන්න පුලුවන් වෙන්න සම්මත කේත ක්‍රම මිනිස්සු අතරේ  famous  උනා. දැන් අපි ඒ මොනවද කියලා බලමු.

1. BCD – Binary Coded Decimal

2. ASCII – American Standards Code for Information Interchange

3. EBCDIC – Extended Binary Coded Decimal Interchange Code

4. Unicode

BCD – Binary Coded Decimal 

BCD එහෙම නැත්නම් Binary Coded Decimal කියන්නේ computer use කරන්න ගත්ත මුල් කාලේ use කරපු කේත ක්‍රමයක් කිව්වොත් හරියටම හරි. BCD කේත ක්‍රමය use කරලා අපට 0 – 9 වෙනකල් තියෙන numbers, bits 4 කින් මේ විදියට represent කරන්න පුලුවන්. (24 = 16)

ASCII – American Standards Code for Information Interchange

මේක තමයි අද අපි කතා කරන main topic  එක. අපි කලින් කතා කරේ BCD එහෙම නැත්නම්  Binary Coded Decimal ගැන නේ. ඒකේ 0 – 9 වෙනකල් numbers represent  කරන්න පුලුවන් කියලා අපි කතා කරානේ. ඉතිං එතකොට  කොහොමද  text represent  කරන්නේ? ඒකට විසදුමක් විදියට තමයි  ASCII කියන  කේත ක්‍රමය  නිර්මාණය උනේ.

ASCII කේත ක්‍රමය 1963 වර්ශයේදී ANSI (American National Standard Institute) කියන ආයතනය තමයිනිර්මාණය කරේ.  ඒ වගේම තමයි  ASCII වල bits 7 ක් තියෙන නිසා characters 128 ක්  represent  කරන්න පුලුවන්. ( 27 = 128) ඒ නිසාම ASCII method  එක use කරලා A – Z වෙනකල් තියෙන  capital letters , simple letters , 0 – 9 වෙනකල් තියෙන  numbers සහ විරාම ලකුණු   represent  කරන්න chance  එක් ලැබිලා තියෙනවා.

දැන් අපි ASCII characters වල binary, decimal, octal, hexadecimal digits represent  වෙන විදිය බලමු. 

Hexadecimal

PC එකට lap එකට තේරෙන්නේ binary values. හැබැයි මිනිස්සුන්ට ඒවා තේරුම් ගන්න බෑ. ඒකට විසදුමක් විදියට  hexadecimal number system  එක ලෝකේ  use වෙනවා. Hexadecimal කියන්නේ 16 පාදයේ කියන එක. ඒ කියන්නේ hexadecimal  වල 0 – 9 වෙනකල් numbers represent  වෙනවා 10 – 15 වෙන්නකල් A – F values represent  වෙනවා. 

Decimal Number0123456789101112131415
Hexadecimal Number0123456789ABCDEF
Number SystemHexadecimal Number System
Base16
Digital Use0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F

(Example එකක් විදියට m කියන අගයේ hexadecimal value එක 0×6D) 

Octal

0, 1, 2, 3, 4, 5, 6, 7 කියන numbers represent කරන්න තමයි 8 පාදයේ එහෙම නැත්නම් Octal Number Systems use කරන්නේ.

Number SystemDecimal Number System
Base10
Digital Use0,1,2,3,4,5,6,7,8,9


(Example එකක් විදියට m කියන අගයේ decimal value එක 109)

Binary 

Binary කිව්වම ඔයාලා දන්නවනේ දෙකේ පාදයේ numbers කියලා. ඒ කියන්නේ 1 සහ 0. මේකෙදී සමහර අවස්තාවල bit 7 ක් use කරනවා සමහර අවස්තාවල bit 8 ක් use කරනවා.

Example – m කියන අගය binary value එකක bit 8 කින් represent කරාම අපට මේ වගේ value එකක් තමයි එන්නේ 0110 1101.

ඒකම bit 7 කින් represent කරාම 110 1101 කිය්න value  එක අපට හම්බු වෙනවා. දැන් ඔයාලා බලනවා ඇතිනේද bit 7 සහ bit 8 කියලා අගයන දෙකක් ගත්තම m කියන letter  එකට  binary values දෙකක තියෙනවද කියලා. ඒකේ එහෙම ලොකු වෙනසක් නැහැ. මොකද m කියන letter  එකේ 7 bits වලින් ගත්තත් 8 bit වලින්  ගත්තත් values දෙකම සමානයි. 8-bit වලින් represent කරන්න ඕනි නිසා ඒකේ මුලට 0 එකක extra add වෙලා තියෙනවා.ASCII වලට අනුව m letter එක binary, decimal, octal, hexadecimal digits වලින් represent වෙන්නේ මෙහෙමයි.

CharacterHexadecimalOctalDecimalBinary (7bit)Binary (8 bit)
m0×6D155109110 11010110 1101

ඇයි ASCII මෙච්චර  import?

ASCII කියන්නේ character encoding වලට ගොඩක් famous method එකක් කියලා ඔයාලට දැන් තේරෙනවනේ. ASCII කියන encoding method එක නිසා තමයි අපට Lap එකේ PC එකේ text typing කරන්න පුලුවන් වෙලා තියෙන්නේ.

ඒකේ result  එකෙක් විදියට  1969 IEFT (The internet Engineering Task Force) එක ASCII  method  එක RFC 20 කියලා public  කරලා තියෙනවා. ඒ විතරක් නෙවෙයි 2015 දී RFC document  එක standard method  එකක් විදියට  ASCII, accept  කරලත් තියෙනවා.

ASCII method එක mainly කොටස් 4 කට බෙදෙනවා ඒ කියන්නේ UTF – 7, UTF – 8, UTF – 16, UTF 32 විදියට (UTF – Unicode transformation Format). මේ වෙද්දී ලෝකයේ English typing  වලට අමතරව  Sinhala, Hindi, Tamil වගේ languages type  කරනවා. මේ extra languages වලට base එක ඇවිල්ලා තියෙන්නේ ASCII  method  එක නිසා.

ලෝකයේ PC එකක් lap එකක් developed  වෙන්කොට ඒක developed කරන්නේ ASCII  method  එක use කරලා. ඒ කියන්නේ English type කරන්න පුලුවන් විදියට. ඊට අමතරව දැන් ගොඩක් අය අනිත්  languages type  කරන නිසා ASCII method  එක දියුණු   කරලා Unicode  කියන coding system  එක ලෝකෙට introduce  කරලා දීලා තියෙනවා.

දැන් අපි බලමු කොහොමද  ASCII  වැඩ කරන්නේ කියලා

ඔයාලට දැන් තේරෙනවා ඇතිනේ ASCII කියන්නේ ගොඩක් important coding method  එකක් කියලා. මොකද  ASCII  නිසා අපට ලේසියෙන්ම text typing  හැකියාව ලැබිලා තියෙනවා.  ASCII method එක use වෙන විදිය අපි දැන් example එක්කම බලමු.

Capital A, වල binary value එක 0100 0001
Simple a, වල binary value එක  0110 0001

Capital A සහ simple a අතර වෙනස බැලුවම third MSB (Most significant bit) එකේ වෙනස ඔයාට පේනවා ඇති. 

මොකක්ද එතකොට මේ MSB කියන්නේ?  MSB එහෙම නැත්නම් Most Significant Bit කියන්නේ කිසියම් සංඛාවක් වමේ ඉදන් දකුණට කියවනකොට වම් කෙලවරේම පිහිටි ශුන්‍ය නොනව අගය. ඒ වගේම වම් කෙලවරේම පිහිටි අගය LSB එහෙම නැත්නම් අපි  Least Significant bit කියලා හදුන්වනවා. 

CharacterBinaryDecimalHexadecimal
A0100 0001650x41
a0110 0001970x61

මේ example  එකට අනුව, ASCII  වල, upper සහ lover case වල වෙනස  32 ක් වෙනවා. ඒ කියන්නේ 97 – 65 = 32. (0 ×20). දැන් ඔයාලට තේරෙනවා ඇති ASCII method use කරලා capital simple characters වල values හොයන කොට decimal value එකට 32 ක් එකතු කරලා හරි අඩු කරලා හරි අගයන් හොයා ගන්න පුලුවන් කියලා.

CharacterBinaryDecimalHexadecimal
00011 0000480x30
10011 0001490x31
20011 0010500x32
30011 0011510x33
40011 0100520x34
50011 0101530x35
60011 0110540x36
70011 0111550x37
80011 1000560x38
90011 1001570x39

මේ table  එකට අනුව, ASCII values  වල මුල් bits 4, ඒ කියන්නේ 0011 කියන bits ටික අයින් කරලා එන value එක convert කරාම ලේසියෙන්ම decimal  value එක ගන්න පුලුවන්. ඒ වගේම තමයි first binary value  එකට, ඒ කියන්නේ 0000 0000 ට 48  කියන decimal value  එකේ  binary value එක වෙන  0011 0000 එකතු කරාම 0011 0000 කියන අගය ලේසියෙන්ම ගන්න පුලුවන්.

ඒ විතරක් නෙවෙයි. Binary value එකක MSB වල අගය 0 නම් ඒක ASCII අගයක් විදියටත් encoding වෙලා තියෙනවා කියලත් MSB වල අගය 1 නම් ඒක ASCII වලින් encoding වෙච්චි අගයක් නෙවෙයි කියලා තමයි developers ලා කියන්නේ.

ASCII සහ Unicode

දැන් අපි බලමු ASCII  සහ Unicode අතරේ තියෙන  connection  එක ගැන.  අපි මුලින්ම කතා උනානේ ASCII  introduce  කරේ  English text typing  වලට.  ඒ කාලේ  ASCII introduce  කරේ bit 7 කින් character 127 ක් වගේ represent  කරන්න පුලුවන් වෙන්න.

ඉතිං bit 7 කින represent  කරන්න පුලුවන් character  ගාන ගොඩක් පොඩි නිසා ASCII  වල අලුත්  version  එකක් ආවා extended ASCII  කියලා. ඒක use කරලා අපට characters 256 ක් represent  කරන්න පුලුවන් හැකියාව ලැබුනා.

ලෝකයේ   Sinhala, Hindi, Tamai  වගේ  ගොඩක්  languages use කරනවා. ඉතිං  ASCII method  එක තිබ්බා කියලා අපට මේ හැම language  එකේම type  කිරීමේ හැකියාව ලැබුනේ නෑ. ඒකට විසදුමක් විදියට තමයි  Unicode ලෝකයට ආවේ.

Unicode වලත් character represent කරන්න methods දෙකක use වෙනවා. UTF (Unicode Transformation Format) සහ UCS (Universal Coded Character Set) කියලා අපි හදුන්වන්නේ ඒ methods දෙක තමයි. UFT (Unicode Transformation Format) එක ගත්තම mainly කොටස් 4 කට බෙදෙනවා. ඒ කියන්නේ , UTF – 7, UTF – 8, UTF – 16 සහ UTF 32.

UTF – 7 ASCII method එක ගැන බැලුවාම එකේ, symbols represent කරන්න 0 – 127   වෙන්කල් තියෙන characters තමයි use කරේ. ඉතිං මේ process  එක පහසු කර ගන්න 0 – 127 වෙන්කල් තියෙන  characters මේ විදියට  කොටස් වලට බෙදලා තියෙනවා.

0 – 31        –  Control Characters
32 – 64      –  Standard Symbolic Characters
65 – 90      –  Lathan American Capital Letters Characters
91 – 96      –  Separate Characters
97 – 122    –  Lathan American Simple Letter Characters
123 – 127  –  Separate Characters

UTF – 7 වලට පස්සේ ආපු encoding method එක තමයි UTF – 8 කියන්නේ. ඒකත් mainly  කොටස් 8 කට බෙදලා තියෙනවා.

0 – 31         – Control Characters
32 – 64       – Stranded Symbolic Characters
65 – 90       – Lathan American Capital Letter Characters
91 – 96       – Separate Characters
97 – 122     – Lathan American Simple Letter Characters
123 – 127   – Separate Characters
128 – 191   – Abstract Symbolic Characters
192 – 255   – Various Accented Alphabetical Characters


ඉතිං කාලයත් එක්කම UTF – 8 කියන method  එකත් character represent  කරන්න මදි උනා. ඒකේ result  එකක් විදියට  UTF – 16 සහ UTF – 32 කියන methods ලෝකයට ආවා. ඉතිං ඒ නිසාම විවිධ භාශා, Unicode symbols, general punctuation symbols, Currency symbols, Letter like symbols, Number form symbols, Arrow symbols, Mathematical symbols, Miscellaneous technical symbols, Optical character recognition symbols, Block element symbols සහ emoji symbols use කරන්න පුලුවන් හැකියාව ලැබුනා.

අපි කතා කරන අනිත්  method  එක තමයි  USE කියන්නේ. මේක ISO ( international Organization for Standardization ) කියන ආයතනය මගින් පාලනය කරන අතර characters 143 857 විතර මේ නිසා represent කිරීමේ හැකියාව ලැබිලා තියෙනවා.

Advantages and Disadvantages of ASCII

දැන් අපි බලමු  ASCII  වල තියෙන  advantages and disadvantages  මොනවද කියලා.

Advantages

ASCII කියන්නේ විශ්වීය වශයෙන් පිලිගන්න language encoding method එකක්. ඒ කියන්නේ  PC , Lap නිර්මාණය කරනකොට  ASCII  වල developed method  එකක් විදියට  Unicode මේ වෙද්දී ලෝකයේ  use කරනවා. ඒක නිසා අපට ඕනිම language  එකක් type  කරන්න හැකියාව ලැබිලා  තියෙනවා.  Efficient of programming – ඒ කියන්නේ PC එකේ lap එකේ වැඩ කරනකොට ලේසියෙන්ම වැඩ කර ගන්න පුලුවන්. මොකද letters, numbers, වගේ දේවල්  type  කරන්න හැකියාව  ASCII  නිසා අපට ලැබිලා තියෙනවා.

Compact character encoding – Compact character encoding කියන්නේ ASCII වල තියෙන තවත් advantage එකක්. ඒ කියන්නේ bit 7 ක standard  එකක් තියා ගන්න ඕනි කියලා. අපි ASCII method  එක use කරලා ලෝකේ කොතන ඉදන් type  කරත් හරිම format  එකට අදල message  එක user ට හම්බවෙන්නේ ASCII  වල තියෙන  Compact character encoding  නිසා.

Disadvantages

කලින් අපි ASCII  වල තියෙන  advantages  කතා කරානේ දැන් අපි disadvantages  මොනවද කියලා බලමු. ASCII වල disadvantages ගත්තම ලොකුවට කියන්න දේකුත් නැහැ. හැබැයි  English language  එක නැතුව වෙන Lathan, Greek වගේ languages use කරද්දී සමහර  letters type  කරද්දී පොඩි පොඩි ගැටලු මතු වෙනවා.

Leave your thought here

Your email address will not be published. Required fields are marked *

Supportscreen tag