ASCII جدول: کیسے 128 نمبر متن کی بنیاد بنے
ASCII، جو American Standard Code for Information Interchange کا مخفف ہے، وہ انکوڈنگ ہے جس نے کمپیوٹرز کو یہ بات پر متفق ہونا سکھایا کہ حرف کیا ہوتا ہے۔ 1963 میں شائع ہوا اور 1960 کی دہائی میں مزید بہتر بنایا گیا، یہ انگریزی متن کے ہر بنیادی حرف، ہندسوں، اور چند کنٹرول سگنلز کو ان نمبروں سے میپ کرتا ہے جنہیں کوئی مشین محفوظ کر سکے اور منتقل کر سکے۔ جب آپ بڑے A کی چابی دباتے ہیں، آپ کا کمپیوٹر کوئی شکل محفوظ نہیں کرتا، یہ نمبر 65 محفوظ کرتا ہے۔ ASCII وہ لُک اپ جدول ہے جو یہ نمبر ہر جگہ جہاں یہ سفر کرے A کا مطلب رکھتا ہے۔
یہ معیار مشہور طور پر مختصر ہے۔ ASCII ایک 7-بٹ کوڈ ہے، جس کا مطلب ہے ہر حرف سات بائنری ہندسوں کے اندر فٹ ہوتا ہے اور پورا مجموعہ بالکل 2 کی 7ویں طاقت، یا 128 الگ کوڈ پوائنٹس 0 سے 127 تک، پر پھیلا ہوا ہے۔ یہ کفایت شعاری جان بوجھ کر تھی۔ ابتدائی ٹیلی ٹائپس اور موڈیمز سست اور مہنگے تھے، اس لیے ہر بٹ کی اہمیت تھی۔ سات بٹ بڑے اور چھوٹے لاطینی حروف، دس ہندسوں، عام رموز اوقاف، اور آلات کو ہم آہنگ رکھنے والے سگنلنگ حروف کا احاطہ کرنے کے لیے کافی تھے، ایک بٹ باقی رہ گیا جسے بہت سے نظاموں نے خرابی چیک کے لیے استعمال کیا۔

دو حصے: کنٹرول حروف اور پرنٹ ایبل حروف
جدول صاف طور پر دو حصوں میں تقسیم ہوتا ہے۔ کوڈز 0 سے 31، جمع کوڈ 127 (DEL)، کنٹرول حروف ہیں۔ یہ اسکرین پر کوئی نشان پرنٹ نہیں کرتے۔ اس کے بجائے یہ کسی آلے کو کچھ کرنے کی ہدایت دیتے ہیں: کوڈ 9 ایک افقی ٹیب ہے، کوڈ 10 لائن فیڈ ہے جو نئی لائن پر لے جاتی ہے، کوڈ 13 کیریج ریٹرن ہے، اور کوڈ 7 وہ گھنٹی ہے جو کبھی ٹرمینل کو سنائی دینے والی آواز میں بجاتی تھی۔ کل ملا کر تینتیس سگنلنگ کوڈز موجود ہیں، اور اگرچہ بہت سے اب تاریخی تجسس ہیں، لائن فیڈ، کیریج ریٹرن، اور ٹیب آج بھی متن فائلوں کی فارمیٹنگ کے لیے ضروری ہیں۔
کوڈز 32 سے 126 پرنٹ ایبل حروف ہیں، کل ملا کر پچانوے۔ کوڈ 32 اسپیس ہے، جو پرنٹ ایبل شمار ہوتا ہے کیونکہ یہ کرسر کو آگے بڑھاتا ہے حالانکہ یہ کچھ نہیں دکھاتا۔ وہاں سے آپ کو رموز اوقاف اور علامات، کوڈز 48 سے 57 پر ہندسے 0 سے 9، کوڈز 65 سے 90 پر بڑے حروف A سے Z، اور کوڈز 97 سے 122 پر چھوٹے حروف a سے z ملتے ہیں۔ اس ترتیب سے ایک صاف خاصیت نکلتی ہے: ایک ہی حرف کی چھوٹی اور بڑی شکلیں بالکل 32 کے فرق سے مختلف ہوتی ہیں، یہی وجہ ہے کہ ایک بٹ پلٹنا حالت تبدیل کر دیتا ہے۔ یہ باقاعدگیاں حادثاتی نہیں تھیں، انہیں اس طرح انجینیئر کیا گیا کہ ترتیب دینا اور حالت تبدیل کرنا سادہ ریاضی سے کیا جا سکے۔
ڈیسیمل، ہیکسا ڈیسیمل، اور بائنری: ایک نمبر کے تین نظارے
ہر ASCII کوڈ محض ایک نمبر ہے، اور آپ اسے تین طرح سے لکھا دیکھیں گے۔ ڈیسیمل روزمرہ کی بیس-10 شکل ہے، تو A 65 ہے۔ ہیکسا ڈیسیمل، بیس 16، وہ شکل ہے جسے پروگرامرز پہنچتے ہیں کیونکہ یہ بائٹس کے ساتھ لائن اپ ہوتی ہے: A 0x41 ہے، اور پرنٹ ایبل رینج 0x20 سے 0x7E تک چلتی ہے۔ بائنری، بیس 2، وہ شکل ہے جو ہارڈ ویئر اصل میں محفوظ کرتا ہے، تو A اپنے سات بٹس میں 1000001 ہے۔ ایک ہی حرف، تین نوٹیشنز، اور ان کے درمیان روانی سے حرکت کرنا ایک بنیادی مہارت ہے جب آپ میموری ڈمپس یا نیٹ ورک ٹریفک پڑھ رہے ہوں۔ اگر آپ اکثر ان تبدیلیوں کے ساتھ کام کرتے ہیں، speedor.net پر وسیع تر حوالہ جدول میپنگز کو ایک کلک دور رکھتا ہے۔

ASCII اب بھی کہاں اہمیت رکھتا ہے
ASCII کو تاریخ کے تحت داخل کرنا ایک غلطی ہوگی۔ یہ کوڈ کو چھونے والے ہر شخص کے روزمرہ کام میں زندہ ہے۔ پروگرامنگ زبانیں اسٹرنگ لٹریلز، سورس فائلز، اور پروٹوکول کی ورڈز کو بائٹ کی سطح پر ASCII سمجھتی ہیں۔ HTTP ہیڈرز، SMTP، اور بہت سے کنفیگریشن فارمیٹس جیسے نیٹ ورک پروٹوکولز ASCII میں متعین کیے گئے ہیں تاکہ وہ انسانی طور پر پڑھنے کے قابل رہیں۔ جب کوئی اسٹرنگ خراب نظر آئے، ڈویلپرز ایک ہیکس ویور تک پہنچتے ہیں اور کسی آوارہ کنٹرول حرف یا غلط لائن اینڈنگ کو پکڑنے کے لیے ASCII جدول کے مقابلے میں خام بائٹس پڑھتے ہیں۔ URL انکوڈنگ، Base64، اور ایسکیپ سیکوئنسز سب ASCII اقدار پر بنتے ہیں۔ انکوڈنگ بگز کو ڈی بگ کرنے والے کسی بھی شخص کے لیے، آپ کے ڈویلپر ٹولز کے پاس ایک فوری حوالہ ایک پراسرار بائٹ کو ایک واضح جواب میں بدل دیتا ہے۔
ASCII سے Unicode اور UTF-8 تک
ASCII نے انگریزی کو خوبصورتی سے سنبھالا اور تقریباً کچھ اور نہیں۔ 128 حروف کی چھت لہجے والے حروف، سیریلک، چینی، عربی، یا ایموجی کو نہیں سنبھال سکتی۔ Unicode نے ہر تحریری نظام میں ہر حرف کو ایک منفرد نمبر، جسے کوڈ پوائنٹ کہا جاتا ہے، تفویض کر کے اس کا جواب دیا، اب ان کی تعداد ایک لاکھ سے کہیں زیادہ ہے۔ اہم بات یہ ہے کہ Unicode حروف کا ایک کیٹلاگ ہے، اسٹوریج فارمیٹ نہیں، اس لیے اسے ان کوڈ پوائنٹس کو بائٹس میں تبدیل کرنے کے لیے ایک انکوڈنگ کی ضرورت ہے۔
UTF-8 وہ انکوڈنگ ہے، اور یہی وجہ ہے کہ ASCII کبھی حقیقی معنوں میں ختم نہیں ہوا۔ UTF-8 ہر حرف کے لیے ایک سے چار بائٹس استعمال کرتا ہے، اور اسے اس طرح ڈیزائن کیا گیا کہ کوڈ پوائنٹس 0 سے 127، پوری ASCII رینج، ایک ہی بائٹ میں محفوظ ہوں جو خالص ASCII کے یکساں ہو۔ یہ UTF-8 کو مکمل طور پر پیچھے کی طرف موافق بناتا ہے: کوئی بھی درست ASCII فائل پہلے سے ہی ایک درست UTF-8 فائل ہے۔ 127 سے اوپر کے حروف اضافی بائٹس استعمال کرتے ہیں۔ یہ خوبصورت مطابقت ایک بڑی وجہ ہے کہ UTF-8 اب ویب کی زبردست اکثریت کو طاقت دیتا ہے۔ مختصراً، ASCII اصل 128 حروف کا مرکز ہے، Unicode وہ آفاقی کیٹلاگ ہے جو اسے شامل کرتا ہے، اور UTF-8 وہ انکوڈنگ ہے جو دونوں کو لے جاتی ہے جبکہ ASCII متن کو بائٹ بہ بائٹ بدلا نہیں چھوڑتی۔
اکثر پوچھے جانے والے سوالات
ASCII جدول میں کتنے حروف ہیں؟
معیاری ASCII 128 حروف متعین کرتا ہے، جو 0 سے 127 تک نمبر شدہ ہیں۔ ان میں سے، 95 پرنٹ ایبل حروف ہیں بشمول اسپیس، اور 33 کنٹرول حروف ہیں جو کوئی نشان پرنٹ کرنے کی بجائے آلات کو سگنل دیتے ہیں۔
کنٹرول اور پرنٹ ایبل حروف میں کیا فرق ہے؟
کنٹرول حروف، کوڈز 0 سے 31 جمع 127، کسی آلے کو لائن فیڈ یا ٹیب جیسا کچھ کرنے کی ہدایت دیتے ہیں اور کوئی نظر آنے والا نشان پیدا نہیں کرتے۔ پرنٹ ایبل حروف، کوڈز 32 سے 126، وہ حروف، ہندسے، رموز اوقاف، اور اسپیس ہیں جو آپ اصل میں اسکرین پر دیکھتے ہیں۔
ASCII 7-بٹ کوڈ کیوں ہے؟
سات بٹ بالکل 128 امتزاج دیتے ہیں، جو انگریزی حروف، ہندسوں، رموز اوقاف، اور کنٹرول سگنلز کا احاطہ کرنے کے لیے کافی تھے جبکہ سست ابتدائی ہارڈ ویئر پر بینڈوڈتھ بچاتے تھے۔ بائٹ کا آٹھواں بٹ اکثر پیریٹی خرابی چیک کے لیے مخصوص تھا۔
حرف A کا ASCII کوڈ کیا ہے؟
بڑا A ڈیسیمل 65، ہیکسا ڈیسیمل 0x41، اور بائنری 1000001 ہے۔ چھوٹا a ڈیسیمل 97 ہے، جو بالکل 32 زیادہ ہے، ایک بلٹ اِن پیٹرن جو حالت کی تبدیلی کو سادہ ریاضی سے ہونے دیتا ہے۔
کیا ASCII اور Unicode ایک ہی ہیں؟
نہیں۔ ASCII 128 حروف کا احاطہ کرتا ہے، جبکہ Unicode ہر تحریری نظام میں ایک لاکھ سے زیادہ کیٹلاگ کرتا ہے۔ ASCII عملی طور پر Unicode کے پہلے 128 کوڈ پوائنٹس ہیں، اس لیے یہ بڑے معیار کا ایک چھوٹا ذیلی سیٹ ہے۔
UTF-8 کا ASCII سے کیا تعلق ہے؟
UTF-8 Unicode کے لیے ایک انکوڈنگ ہے جو کوڈ پوائنٹس 0 سے 127 کو ایک ہی بائٹ میں محفوظ کرتی ہے جو ASCII کے یکساں ہے۔ یہ ہر ASCII فائل کو ایک درست UTF-8 فائل بناتا ہے، یہی وجہ ہے کہ UTF-8 پیچھے کی طرف موافق ہے اور جدید ویب پر غالب ہے۔
