কম্পিউটার সংখ্যা ব্যবহার করে। মানুষ অক্ষর এবং প্রতীক ব্যবহার করে। আমাদের একটি সেতুর প্রয়োজন। ASCII হল সেই সেতু। ASCII প্রতিটি অক্ষর বা প্রতীককে একটি সংখ্যায় রূপান্তরিত করে। কম্পিউটার সংখ্যাটি সংরক্ষণ করে। আমরা যখন পড়ি, তখন কম্পিউটার আবার অক্ষরটি দেখায়। অনেক ফাইল এবং অ্যাপে টেক্সট এভাবেই কাজ করে।
একটি কম্পিউটার বিদ্যুৎ দিয়ে কাজ করে। এটি দুটি অবস্থা দেখে। চালু এবং বন্ধ। আমরা এই অবস্থাগুলোকে বিট বলি। একটি বিট হল 0 অথবা 1। অনেক বিট একসাথে বড় সংখ্যা তৈরি করে। আটটি বিট একটি বাইট তৈরি করে। বিট দিয়ে আমরা গণনা করতে পারি। গণনার মাধ্যমে আমরা জিনিসের নামকরণ করতে পারি। ASCII অক্ষর এবং প্রতীকের নামকরণের জন্য গণনা ব্যবহার করে।
একটি বিট দুটি পছন্দ করে। দুটি বিট চারটি পছন্দ করে। গণিতে, এই ধারণাটি \(\;2^n\) হিসাবে দেখানো হয়েছে। \(n=7\) এর জন্য, আমরা \(2^7 = 128\) পছন্দ পাই। \(n=8\) এর জন্য, আমরা \(2^8 = 256\) পছন্দ পাই। ASCII 7 বিট ব্যবহার করে। এটি 128টি নামযুক্ত আইটেম দেয়। পরে লোকেরা 256টি আইটেম দিয়ে 8-বিট সেট তৈরি করে। এগুলিকে বলা হয় বর্ধিত ASCII ।
ASCII মানে হল আমেরিকান স্ট্যান্ডার্ড কোড ফর ইনফরমেশন ইন্টারচেঞ্জ । এটি ১৯৬০-এর দশকে শুরু হয়েছিল। এটি প্রাথমিক প্রিন্টার, টেলিটাইপ এবং কম্পিউটারের জন্য তৈরি করা হয়েছিল। এটি প্রতিটি অক্ষর, সংখ্যা, স্থান এবং কিছু প্রতীককে একটি সংখ্যা দেয়। এটি নতুন লাইনের মতো ক্রিয়াগুলিকে বিশেষ সংখ্যাও দেয়। প্রথম সংস্করণে ৭ বিট ব্যবহার করা হয়েছিল, তাই এতে ০ থেকে ১২৭ পর্যন্ত সংখ্যা ছিল।
একটা সুন্দর জিনিস লক্ষ্য করুন। ছোট হাতের অক্ষরগুলো তাদের বড় হাতের জোড়ার চেয়ে ৩২ বেশি। উদাহরণস্বরূপ, \(\;97 - 65 = 32\) । তাহলে 'a' 'A' এর চেয়ে ৩২ বেশি। 'b' 'B' এর চেয়ে ৩২ বেশি, ইত্যাদি। এই প্যাটার্নটি কিছু কম্পিউটারের কাজ সহজ করে তোলে।
যখন আপনি এন্টার কী টিপবেন, তখন আপনার কম্পিউটার সিস্টেমের উপর নির্ভর করে LF, অথবা CR, অথবা উভয়ই পাঠাতে পারে। অনেক ইন্টারনেট টুল LF ব্যবহার করে। কিছু পুরানো সিস্টেম CR এবং LF একসাথে ব্যবহার করত।
আমরা বিভিন্ন উপায়ে সংখ্যা লিখতে পারি। দশমিক হল স্বাভাবিক পদ্ধতি যা আমরা গণনা করি, 0 থেকে 9 পর্যন্ত সংখ্যা ব্যবহার করে। বাইনারি শুধুমাত্র 0 এবং 1 ব্যবহার করে। হেক্স (হেক্সাডেসিমেল) 0 থেকে 9 এবং A থেকে F ব্যবহার করে।
বাইনারি কীভাবে 'A' এর জন্য 65 তৈরি করে? 01000001 এর বিটগুলি দেখুন। সবচেয়ে বাম দিকের বিটটি 128 এর জন্য। তারপর 64, 32, 16, 8, 4, 2, 1। শুধুমাত্র 64 এবং 1 চালু আছে। তাহলে \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) ।
একটি কী টিপুন। কীবোর্ড কম্পিউটারে একটি কোড পাঠায়। সিস্টেমটি এটিকে একটি অক্ষর সংখ্যায় রূপান্তরিত করে। অনেক কী-এর ক্ষেত্রে, সেই সংখ্যাটি হল ASCII সংখ্যা। অ্যাপটি মেমোরিতে সংখ্যাটি সংরক্ষণ করে। যখন এটি টেক্সট দেখায়, তখন এটি সংখ্যাটি খুঁজে বের করে এবং অক্ষরটি আঁকে। যখন আপনি সংরক্ষণ করেন, তখন সংখ্যাগুলি ফাইলে চলে যায়।
"হাই! " বার্তাটি ভাবুন। অক্ষর দুটি হল H, i, এবং !। তাদের ASCII সংখ্যা হল 72, 105, এবং 33। বাইনারিতে, এগুলি হল 01001000, 01101001, এবং 00100001। নেটওয়ার্ক এই বিটগুলি পাঠায়। অন্য দিকটি বিটগুলি পড়ে। এটি সংখ্যাগুলি দেখে। এটি আবার H, i, এবং ! দেখায়। সহজ টেক্সট বার্তাগুলি এভাবেই চলে।
মানুষ আরও প্রতীক চাইছিল। তারা é, ñ, এবং ø এর মতো অক্ষর চেয়েছিল। তারা € এর মতো অর্থের চিহ্ন চেয়েছিল। ৭-বিট সেটে মাত্র ১২৮টি প্রতীক ছিল। তাই মানুষ ৮টি বিট ব্যবহার করত। ৮টি বিট দিয়ে আমরা \(2^8 = 256\) প্রতীক পাই। ১২৮ থেকে ২৫৫ পর্যন্ত উপরের অর্ধেকটি অতিরিক্ত অক্ষর এবং প্রতীকের জন্য ব্যবহৃত হত। কিন্তু একটি সমস্যা ছিল। বিভিন্ন দল সেই অতিরিক্ত অক্ষরের জন্য বিভিন্ন সংখ্যা বেছে নিয়েছিল। এই পছন্দগুলিকে কোড পৃষ্ঠা বলা হয়।
কোড পৃষ্ঠাগুলি ভিন্ন হওয়ার কারণে, একই সংখ্যা অন্য কম্পিউটারে ভিন্ন প্রতীক দেখাতে পারে। এই মিশ্রণটিকে বলা হয় mojibake । এটি দেখতে অদ্ভুত অক্ষরের মতো। এই কারণেই বিশ্ব ইউনিকোডে চলে এসেছে।
ইউনিকোড একটি বৃহৎ মান যা অনেক ভাষা, গণিত প্রতীক এবং ইমোজি প্রদর্শন করতে পারে। এতে দশ লক্ষেরও বেশি প্রতীক রাখার জায়গা রয়েছে। ইউনিকোড সংরক্ষণের অনেক উপায় রয়েছে। একটি জনপ্রিয় উপায় হল UTF-8 ।
ASCII-কেবলমাত্র লেখার ক্ষেত্রে, প্রতিটি অক্ষর একটি বাইট ব্যবহার করে। তাই cat শব্দটি 3 বাইট ব্যবহার করে। "hi mom" বাক্যাংশটিতে স্থান সহ 6 টি অক্ষর রয়েছে, তাই এটি 6 বাইট ব্যবহার করে। সহজ গণিতে, \(\textrm{ASCII বাইট} = \textrm{অক্ষরের সংখ্যা}\) ।
কম্পিউটার প্রায়শই স্ট্রিংগুলিকে তাদের অক্ষর সংখ্যা অনুসারে সাজায়। ASCII ক্রম জিনিসগুলিকে একটি নির্দিষ্ট উপায়ে গোষ্ঠীভুক্ত করে।
এর মানে হল, যদি আমরা সহজ ASCII মান তুলনা করি, তাহলে Zoo অ্যাপলের আগে আসে। সংখ্যা অনুসারে সাজানো হয়, শব্দের শব্দের উপর নয়।
লক্ষ্য করুন অ্যাম্পারস্যান্ডটি &। এর ASCII সংখ্যা 38। যোগ চিহ্ন + হল 43। বিয়োগ চিহ্ন - 45।
মানুষ কেবল অক্ষর ব্যবহার করে ছবি বানায়। একে বলা হয় ASCII শিল্প । এখানে ASCII অক্ষর দিয়ে তৈরি একটি ক্ষুদ্র মুখ দেখানো হল।
:-) সরল হাসি
(^_^) বন্ধুত্বপূর্ণ মুখ
o_O অবাক
প্রতিটি মুখ কেবল কোলন, ড্যাশ এবং বন্ধনীর মতো অক্ষর দিয়ে তৈরি। কোনও রঙ বা আকার নেই। কেবল লেখা।
ASCII টেলিটাইপ এবং প্রাথমিক কম্পিউটার থেকে উদ্ভূত হয়েছিল। ১৯৬৩ সালে, একটি প্রথম সংস্করণের উপর একমত হয়েছিল। এটি বিভিন্ন মেশিনকে একে অপরের সাথে কথা বলতে সাহায্য করেছিল। একটি ভাগ করা কোডের সাথে, A এর মতো একটি অক্ষর সর্বত্র একই সংখ্যা বোঝায়। এর ফলে বার্তা পাঠানো এবং লেখা মুদ্রণ করা সহজ হয়েছিল।
ASCII-তে মাত্র ১২৮টি আইটেম আছে। এটি সব ভাষার জন্য যথেষ্ট নয়। এটি চীনা, হিন্দি, আরবি, অথবা অন্যান্য অনেক স্ক্রিপ্ট দেখাতে পারে না। এটি ইমোজি দেখাতে পারে না। এটি অনেক গণিত এবং সঙ্গীত প্রতীকও দেখাতে পারে না। এর জন্য, আমরা ইউনিকোড ব্যবহার করি। ইউনিকোড অনেক স্ক্রিপ্ট এবং প্রতীক দেখাতে পারে। UTF-8 হল সেগুলি সংরক্ষণ করার একটি উপায়। ভালো খবর হল যে সমস্ত ASCII টেক্সট UTF-8-এর ভিতরে কাজ করে। তাই আধুনিক সিস্টেমগুলি পুরানো ASCII সহজেই পড়তে পারে।
বেশিরভাগ অ্যাপ UTF-8 আশা করে। কিন্তু যখন কোনও ফাইলে কেবল ASCII অক্ষর এবং চিহ্ন থাকে, তখন এটি UTF-8 এর অধীনে একই রকম দেখায়। প্রোগ্রামাররা এটি পছন্দ করে কারণ এটি জিনিসগুলিকে সহজ রাখে। ওয়েব পৃষ্ঠা, API এবং অনেক সরঞ্জাম UTF-8 ব্যবহার করে, যার মধ্যে পরিবর্তন ছাড়াই ASCII অন্তর্ভুক্ত থাকে।
ASCII হল একটি ৭-বিট সেট। এর অর্থ হল \(2^7 = 128\) পর্যন্ত বিভিন্ন অক্ষর। ৮ বিট বিশিষ্ট একটি বর্ধিত সেটে \(2^8 = 256\) আইটেম থাকে। যদি আপনার টেক্সটে শুধুমাত্র ASCII অক্ষর থাকে এবং এতে \(n\) অক্ষর থাকে, তাহলে এটি \(n\) বাইট ব্যবহার করে। OK এর মতো একটি ছোট বার্তায়, \(n = 2\) । তাই ASCII বা UTF-8 হিসাবে সংরক্ষণ করার সময় এটি ২ বাইট ব্যবহার করে।
কিছু ASCII আইটেম অ্যাকশন করে কিন্তু প্রিন্ট করে না। স্পেস খালি প্রিন্ট করে। কিন্তু LF এবং CR কার্সারটি সরিয়ে দেয়। TAB লাফ দেয়। যখন আমরা একটি বিশেষ এডিটরে একটি ফাইল খুলি, তখন এটি LF কে \n হিসাবে দেখাতে পারে। এই প্রতীকটি ASCII এর অংশ নয়। এটি এমন একটি উপায় যা সম্পাদক আপনাকে লাইন ব্রেক দেখায়।
কল্পনা করুন একটি লেবেল প্রস্তুতকারক নাম ছাপে। এটি নামটিকে অক্ষর হিসেবে পড়ে। এটি প্রতিটি অক্ষরকে ASCII সংখ্যায় রূপান্তরিত করে। এটি সেই সংখ্যাগুলিকে মেমরিতে সংরক্ষণ করে। এটি প্রতিটি সংখ্যা কীভাবে আঁকতে হয় তা অনুসন্ধান করে অক্ষরগুলি ছাপে। যদি এটি LF (10) পূরণ করে, তবে এটি আরও মুদ্রণের আগে পরবর্তী লাইনে চলে যায়।
'!' অক্ষরটি আবার দেখুন। আমরা এর কোডটি তিনটি উপায়ে লিখতে পারি। দশমিক: 33. বাইনারি: 00100001. হেক্স: 21. গণিত আকারে, \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) । প্রতিটি ফর্মের মান একই। অ্যাপগুলি তাদের প্রয়োজনীয় ফর্মটি বেছে নেয়। লোকেরা প্রায়শই দশমিক পড়ে। কম্পিউটারগুলি বাইনারি পছন্দ করে। হেক্স হল বাইনারি সংখ্যা পড়ার জন্য মানুষের জন্য একটি ছোট উপায়।
ASCII ছোট এবং স্পষ্ট। এটি অনেক আগেই তৈরি করা হয়েছিল। এর উপর অনেক সরঞ্জাম এবং প্রোটোকল তৈরি করা হয়েছিল। যেহেতু প্রথম 128টি ইউনিকোড কোড ASCII-এর সাথে মেলে, তাই এই পরিকল্পনাটি আজও কাজ করে। এই কারণেই আপনি একটি নতুন ফোন বা ল্যাপটপে খুব পুরানো টেক্সট ফাইল খুলতে পারেন এবং একই অক্ষর দেখতে পারেন।
"Hello" লেখা দিয়ে একটি ফাইল খুলুন। বাইটগুলো হলো ASCII সংখ্যা 72 101 108 108 111। বাইনারিতে এগুলো হলো 01001000 01100101 01101100 01101100 01101111। অ্যাপটি প্রতিটি সংখ্যা পড়ে স্ক্রিনে H ello আঁকে। যদি পরবর্তী সংখ্যাটি 10 হয়, তাহলে এটি আরও লেখা আঁকার আগে একটি নতুন লাইনে চলে যায়। এই প্রক্রিয়াটি কতটা সহজ এবং স্থির তা বোঝা যায়।
১০ সংখ্যাটির কথা ভাবুন। বাইনারিতে, এটি 00001010। দশমিকে, এটি দশ। ASCII তে, 10 হল LF, লাইন ফিড। এটি দেখায় যে একই সংখ্যাটি কীভাবে বিভিন্ন উপায়ে দেখানো যেতে পারে। অর্থটি আমরা কীভাবে সংখ্যাটি ব্যবহার করি তার উপর নির্ভর করে। যদি আমরা বলি এটি একটি অক্ষর কোড, তাহলে 10 এর অর্থ LF। যদি আমরা বলি এটি কেবল আপেলের একটি গণনা, তাহলে এটি দশ আপেল। প্রসঙ্গ গুরুত্বপূর্ণ।
আমরা এক ডিভাইস থেকে অন্য ডিভাইসে Sun শব্দটি পাঠাবো। কোডগুলো হলো 'S' 83, 'u' 117, 'n' 110। বাইনারিতে, 83 হল 01010011, 117 হল 01110101, 110 হল 01101110। বিটগুলো On এবং Off সিগন্যাল হিসেবে ভ্রমণ করে। অন্য ডিভাইসটি বিটগুলোকে আবার সংখ্যায় রূপান্তরিত করে। তারপর এটি সংখ্যাগুলোকে অক্ষরে রূপান্তরিত করে। এটি Sun শব্দটি দেখায়। যদি পরবর্তী কোড 32 হয়, তাহলে এটি একটি স্পেস। যদি পরবর্তী কোড 33 হয়, তাহলে এটি '!'। নিয়মগুলো প্রতিবার একই থাকে। এটাই একটি শেয়ার্ড কোডের শক্তি।