আমার পূর্বের বোঝা হল হার্ডড্রাইভগুলিতে সমস্ত তথ্য বাইনারি ফর্ম (0s এবং 1s) এবং 8-বিট ব্লকগুলিতে আধুনিক কম্পিউটার হার্ড ড্রাইভে সংরক্ষণ করা হয়েছিল। এবং যে হেক্সাডেসিমেলটি তথ্য প্রদর্শন সহজতর করার জন্য ব্যবহার করা হয়, তাই মানুষের বিট দীর্ঘ ব্লক পড়া প্রয়োজন হয় না।
আপনার আগের বুদ্ধিটি সঠিকভাবে সঠিক, এবং আমার মনে হয় আপনি এই উত্তরটির বাকি অংশটি ইতিমধ্যেই বুঝতে পেরেছেন, কিন্তু আমি এমন কিছু ধারনা ব্যাখ্যা করতে চাই, যেগুলি প্রায়শই যেভাবেই সংঘটিত হয়। আমি যত তাড়াতাড়ি সম্ভব সংক্ষিপ্ত চেষ্টা করার চেষ্টা করছি, কিন্তু এটা কঠিন হবে।
বাইট, সংগ্রহস্থল
ডেটা সাধারণত বাইট নামে আট-বিট ব্লকগুলিতে একটি হার্ড ড্রাইভ (বা মেমরিতে) সংরক্ষণ করা হয়। একটি বিট বিট দুটি সম্ভাব্য মান রয়েছে, যা, সংবিধান দ্বারা, আমরা 0 এবং 1. হিসাবে উল্লেখ করি। সুতরাং একটি একক বাইট সুতরাং ২ 8 = 256 সম্ভাব্য মান।
আমি আসলে 8-বিট ব্লক সাধারণত ইউনিট কেন জানি না। আমি কম্পিউটার ডেভেলপমেন্টের ইতিহাস সম্পর্কে যথেষ্ট পরিচিত নই, তবে আমি অন্তত আপনাকে বলতে পারি অবিরত সাধারণ সিস্টেমে 8-বিট বাইট ব্যবহার করতে কারণ আমরা এই মুহুর্তে এটিকে লক করেছি এবং পরিবর্তন করার কোনো কারণ নেই।
এছাড়াও, কারণ আমি জানি এটি আসবে, প্রকৃতপক্ষে তথ্যটি এক-বাইট ব্লক বা একটি বাইটে একবারে ড্রাইভে সংরক্ষণ করা হয় না। সাধারণত হার্ড ড্রাইভগুলি প্রায়ই বড় ব্লকগুলি ব্যবহার করে, ইত্যাদি। তবে, আপনার প্রশ্নের সুযোগের জন্য, এগুলির কোনও বিষয় নেই। যে সব ব্যাপার যে এটি আমাদের প্রদর্শিত হবে যে হার্ড ড্রাইভ পৃথক বাইট কাজ। বাস্তব বাস্তবায়নটি একটি আকর্ষণীয় বিষয় কিন্তু আমাদের এখানে প্রভাবিত করে না: ঐতিহ্যগতভাবে, মানুষ সাধারণত পৃথক বাইটের পরিপ্রেক্ষিতে স্টোরেজ আলোচনা করে এবং আমরা সম্ভবত হয় মানব।
বাইনারি, হেক্সাডেসিমেল
বাইট-সম্পর্কিত বিষয়গুলির মতামত নিয়ে আলোচনা করার সময় আমরা প্রায়ই বাইনারি নোট ব্যবহার করি কারণ কেবল এটি সবচেয়ে ইন্দ্রিয় করে তোলে। যেহেতু একটি বিট দুটি সম্ভাব্য মান রয়েছে, এটি স্বাভাবিকভাবে সংখ্যার বাইনারি প্রতিনিধিত্বের অনুবাদ করে (বাইনারি মানে প্রতিটি সংখ্যার দুটি সম্ভাব্য মান রয়েছে, দশমিক সিস্টেমের বিপরীতে আমরা সাধারণত প্রতিদিন ব্যবহার করি, যেখানে প্রতিটি সংখ্যার দশটি সম্ভাব্য মান রয়েছে)।
কারণ প্রোগ্রামারগণ হ্যাকডেডিমাল ব্যবহার করতে চান (প্রতিটি অঙ্কের 16 টি সম্ভাব্য মান আছে) কারণ এটি হল সত্যিই সুবিধাজনক । এটি এমনই ঘটতে পারে যে একটি একক হেক্সাডেসিমেল ডিজিটের দ্বারা উপস্থাপিত পরিসরটি চার বাইনারি সংখ্যার দ্বারা প্রতিনিধিত্বযোগ্য পরিসরের সাথে সম্পর্কিত। এবং এটি আমাদের 8 বিট বাইটে চমত্কারভাবে ফিট করে: দুই হেক্স সংখ্যা একটি বাইটের প্রতিটি মানকে উপস্থাপন করতে পারে। এটি আমাদের মস্তিষ্কের জন্য একটি পরিচালনাযোগ্য সিস্টেম, এটি একবারে ব্যবহার করার পরে হেনক্সকে বাইনারিতে যুক্ত করা সত্যিই সহজ।
আমরা লেখালেখিতে একটি বেস -56 সিস্টেম ব্যবহার করতে পারতাম, কিন্তু এটি অসুবিধাজনক হবে, কারণ ২56 টি সহজে টাইপযোগ্য, স্পেকশেবল এবং স্মরণযোগ্য অক্ষর নিয়ে আসা কঠিন। আমরা একটি বেস -17 সিস্টেম ব্যবহার করতে পারতাম কিন্তু এটি 8-ডিজিটের বাইনারি সংখ্যাগুলিতে সুসংগতভাবে মেলে না। সুতরাং আমরা হেক্সাডেসিমাল ব্যবহার করি, কারণ এটি আমাদের জন্য অর্ধেক অর্থোপার্জন করে।
পাঠ
আমরা পাঠ্যটি অনেক ব্যবহার করি, তাই আমরা বাইটের সিরিজের মতো প্রতিদিন ব্যবহার করা অক্ষরগুলির প্রতিনিধিত্ব করার মানদণ্ডগুলি উপভোগ করার জন্য আমাদের উপকারের পক্ষে। বাইট থেকে অক্ষরের এই ম্যাপিং একটি "অক্ষর এনকোডিং" বা "চরিত্র সেট" বলা হয়। অবশ্যই, আমরা আসলে জিনিসগুলিতে একমত হয়ে স্তন্যপান করি, এবং অনেকগুলি ভিন্ন ধরণের বিভিন্ন চাহিদাগুলির জন্য স্বাধীনভাবে উন্নত হয়, সুতরাং আমাদের অনেক অক্ষর সেট যেমন ASCII, বা ISO-8859-1, অথবা নামক JIS ।
একপাশে, ইউনিকোডটি এমন একটি মানকে সংজ্ঞায়িত করার চেষ্টা করার জন্য উদ্ভাবিত হয়েছিল যা সকলেই সুখী হয়েছিল, আমাদের বিভিন্ন চরিত্র এনকোডিংগুলিকে একত্রিত করে, তাই এই নামটি "ইউনিকোড"।
কিন্তু বিন্দুটি হল, বাইটের সিরিজ দ্বারা পাঠ্যটি উপস্থাপিত হয় এবং বাইটের প্রতিটি সিরিজের মানে কীভাবে বিভিন্ন অক্ষর এনকোডিং দ্বারা নির্ধারিত হয় এবং বাইটিগুলি বাইট পড়ার প্রোগ্রামটি বুঝতে পারে যে বাইটগুলি সমস্ত পাঠ্যকে প্রতিনিধিত্ব করে তারা টেক্সট প্রতিনিধিত্ব করা অনুমিত হয়। ASCII এটি সম্পর্কে কথা বলার পক্ষে সুবিধাজনক একটি কারণ যেহেতু প্রতিটি চরিত্র মানচিত্রটি এক বাইটের মতো, এবং এটি সত্যিই পুরানো, সত্যিই সহজ, সত্যিই ব্যাপকভাবে ব্যবহৃত হয়েছিল এবং বিশ্বব্যাপী সম্প্রদায়ের জন্য অত্যন্ত অপর্যাপ্ত হওয়া সত্ত্বেও এখনও খুব জনপ্রিয় এবং আলোচনা করা সহজ।
শব্দার্থবিদ্যা
এই, আমি দৃঢ় বিশ্বাস, অনেক মানুষের সবচেয়ে বিভ্রান্তিকর বিন্দু।
বাইট মাত্র বাইট হয়। তারা মূলত ইচ্ছাকৃত মান আছে। আসলে যারা মান কি গড় শুধুমাত্র প্রসঙ্গ দ্বারা নির্ধারিত হয় এবং কীভাবে একটি প্রোগ্রাম পড়ছে তা আসলে তাদের সাথে করে।
উদাহরণস্বরূপ, মনে হচ্ছে যে একটি বাইট 256 মান গ্রহণ করতে পারে, দিনের শেষে 97 (বাইনারি 01100001, হেক্সাডেসিমিল 61), অর্থের অর্থ হতে পারে অনেক বিভিন্ন জিনিস:
- যদি বাইটটি পূর্ণসংখ্যা মান হিসাবে বিবেচিত হয় তবে এটি সংখ্যা 97।
- যদি বাইটটি ASCII চরিত্র হিসাবে বিবেচিত হয় তবে এটি অক্ষর
a
।
- Intel x86 সামঞ্জস্যপূর্ণ প্রসেসরগুলির জন্য বাইটিটি মেশিন নির্দেশ হিসাবে বিবেচিত হলে, এটি
POPA
অথবা POPAD
নির্দেশনা (আপনি কি জানেন না তা কোন ব্যাপার না, এটি কোনও পয়েন্ট নয়)।
- যদি বাইট একটি গ্রেস্কেল চিত্রের একটি পিক্সেল উপস্থাপন করে তবে এটি সম্ভবত ধূসর এই ছায়া ।
- বাইটি কিছু খেলার জন্য কিছু মানচিত্র তথ্য অংশ, সম্ভবত এটি একটি গাছ বা একটি বেড়া বা কিছু।
- প্রভৃতি
এমনকি সাংখ্যিক মানগুলির জন্য বিট প্যাটার্নগুলি বিভিন্ন অর্থ গ্রহণ করতে পারে, উদাহরণস্বরূপ:
- কখনও কখনও আমরা 0-255 মান সঙ্গে সন্তুষ্ট। অন্য সময় আমরা নেতিবাচক সংখ্যার হ্যান্ডেল করতে চাই, তাই আমরা সেমিক্যান্ট মানগুলির পরিসীমা -128 থেকে 1২8-এ সরাতে পারি এবং প্রথম বিটটি ব্যবহার করে তা নেতিবাচক কিনা তা নির্দেশ করার জন্য ব্যবহার করি। বা যাই হোক না কেন. আকাশ সীমা (যদিও, চরিত্র এনকোডিংগুলির মত, সাধারণত একটি পূর্ণসংখ্যা মান হিসাবে নিয়ম মান সেট উপর সম্মত হয়)।
- কখনও কখনও বিভিন্ন পরিস্থিতিতে কারণে, আমরা এমনকি অন্য উপায়ে পূর্ণসংখ্যা মান এনকোড করি, যেমন। স্কুবা BCD ।
- কখনও কখনও আমরা বৃহত্তর পূর্ণসংখ্যা প্রতিনিধিত্ব করতে হবে। তাই আমরা অনেক বাইট ব্যবহার। এমনকি এই অপশন আছে, দেখুন "Endianness" ।
- কখনও কখনও আমরা দশমিক সংখ্যা প্রতিনিধিত্ব করতে হবে। এখানে অনেক অপশন, দেখুন ফ্লোটিং পয়েন্ট এবং নির্দিষ্ট বিন্দু এখানে অপশন জন্য।
এই সব বিন্দু একটি বাইট শুধুমাত্র একটি বাইট হয়, আপনি প্রসঙ্গ আছে না হওয়া পর্যন্ত এটি কিছুই মানে। যদি কোন প্রোগ্রাম কিছু বাইটের সাথে কিছু নির্দিষ্ট অর্থ লিখে তবে শুধুমাত্র একটি প্রোগ্রাম যা তাদের পড়বে এবং তাদের একই অর্থ বুঝিয়ে তাদের ব্যাখ্যা করবে যে এটি সঠিকভাবে বুঝতে পারবে।
একসঙ্গে এই সব নির্বাণ
তাই এখন, এই সব আপনার উত্তরের সাথে সম্পর্কিত করে, এটি আসলেই আসলেই সহজ হওয়া উচিত:
- আপনার বন্ধু আপনার সংখ্যা হিসাবে সংরক্ষণের ধারণা উল্লেখ করা হয় হেক্সাডেসিমালের তার মূল্যের একটি পাঠ্য উপস্থাপনা । উদাহরণস্বরূপ, হ্যাকের মান 97, 61 হতে পারে। এটি একটি দুই অঙ্কের সংখ্যা, যার মধ্যে "6" অক্ষরটি "1" অনুসরণ করে। হিসাবে এনকোড হওয়া ASCII যে দুটি বাইট হবে: মান 54 পরে মান 49 (দশমিক)। কিন্তু এর অর্থ কেবলমাত্র, যদি আপনি সেই বাইটগুলি আবার পড়েন তবে আপনি তাদের দুটি ASCII এনকোডেড হেক্সাডেসিমেল সংখ্যা হিসাবে বোঝেন।
- আপনি শুধু মান 97 সঞ্চয় করতে পারে। এটি শুধুমাত্র একটি বাইট। যে পূর্ববর্তী বিকল্প অর্ধেক দৈর্ঘ্য। কিন্তু অবশ্যই, যে শুধুমাত্র অর্থ আছে, যখন আপনি যে বাইট ফিরে পড়া, আপনি এটি একটি পূর্ণসংখ্যা মান সরাসরি অনুরূপ বুঝতে ।
সাধারণত , আমাদের প্রোগ্রামাররা সম্ভবত দ্বিতীয় বিকল্পটি বেছে নেবে, তবে এটি আসলেই প্রকৃতপক্ষে প্রসঙ্গে নির্ভর করে। উদাহরণস্বরূপ, একটি এইচটিএমএল ডকুমেন্টে, যা মানুষের পাঠযোগ্য পাঠ্য হতে ডিজাইন করা হয়েছে, আমরা এখনও একটি বৈশিষ্ট্য সংরক্ষণ করব width="97"
। এখানে কিছু কঠোর উপস্থাপনা ব্যবহার করার জন্য এটি কম স্থান নিতে পারে তবে এটি HTML লিখতে ব্যথা হবে। তাই এটি সত্যিই প্রসঙ্গ এবং ব্যবহার ক্ষেত্রে নির্ভর করে।
আমি অন্তত এই কিছু ইন্দ্রিয় আশা করি।