বাইনারি সমতুল্য বার্তা সংরক্ষণের চেয়ে সরল পাঠ্য ডেটা সংরক্ষণ করা কি কম জায়গা নেয়?


32

ওয়েব বিকাশকারী হিসাবে বাইনারি ডেটা সম্পর্কে আমার খুব কম বোঝা আছে।

যদি আমি "হ্যালো ওয়ার্ল্ড" বাক্যটি গ্রহণ করি তবে এটিকে বাইনারি রূপান্তর করুন এবং এটি একটি এসকিউএল ডাটাবেসে বাইনারি হিসাবে সঞ্চয় করি তবে মনে হয় যে 1 এবং 0 এর দশকের চেয়ে অক্ষরটি বেশি স্থান নেবে। আমার কাছে মনে হয় চিঠিগুলি ব্যবহার করা ধরণের সংকোচনের মতো হবে, যেখানে একটি চিহ্ন একাধিকের জন্য দাঁড়িয়ে।

কিন্তু আসলেই কী এটি কাজ করে?

বাইনারি সমতুল্য বার্তা সংরক্ষণের চেয়ে সরল পাঠ্য ডেটা সংরক্ষণ করা কি কম জায়গা নেয়?


126
তুমি জানো না পরম সর্বনিম্ন যে প্রতি ডেভেলপার অক্ষর এনকোডিং সম্পর্কে জানতে হবে । ভাগ্যক্রমে এই সাইটের প্রতিষ্ঠাতা আপনাকে একটি নিবন্ধ লিখেছিলেন। আপনি আবার প্রোগ্রাম করার আগে এটি পড়ুন। joelonsoftware.com/2003/10/08/…
এরিক লিপার্ট

16
@ এরিকলিপার্ট একটি দুর্দান্ত পঠিত এবং ফলস্বরূপ আমি আরও ভাল আছি ধন্যবাদ আপনাকে ধন্যবাদ।
জন দো


2
ওয়েব ডেভেলপার হওয়া চরিত্রের এনকোডিং এবং বাইনারি ডেটা কীভাবে কাজ করে তা না জানার অজুহাত নয়। আপনার সত্যিই আপনার দক্ষতাগুলি ব্রাশ করা দরকার ...
টি। সার - মোনিকা

উত্তর:


134

বাদী বাইনারি হয়।

আপনি যখন Hকোনও হার্ড ড্রাইভে লিখেন, লেখার মাথাটি দুটি উল্লম্ব রেখা এবং একটি অনুভূমিক রেখাটি প্ল্যাটারে খোদাই করে না, এটি চৌম্বকীয়ভাবে 010010001 টি বিটগুলি প্ল্যাটারে এনকোড করে ।

সেখান থেকে স্পষ্ট হওয়া উচিত যে প্লেইন টেক্সট ডেটা সংরক্ষণ করা বাইনারি ডেটা সংরক্ষণ করার মতো ঠিক একই পরিমাণ স্থান গ্রহণ করে।

তবে প্লেইনটেক্সট হল একটি মাত্র 2 নির্দিষ্ট বাইনারি ফর্ম্যাট

প্লেইনটেক্সটকে অন্য বাইনারি ফর্ম্যাটগুলিতে বিপরীতভাবে রূপান্তর করা যায়। একটি সাধারণ রূপান্তর হ'ল সংক্ষেপণ যা সাধারণত আরও কমপ্যাক্ট উপস্থাপনার ফলস্বরূপ, একই তথ্যের প্রতিনিধিত্ব করতে ব্যবহৃত কম বিট মানে।

আপনি প্রতিনিধিত্ব করার জন্য প্লেটেক্সটটি কী ব্যবহার করছেন তার উপর নির্ভর করে আপনি একই তথ্য উপস্থাপন করতে বিভিন্ন বাইনারি ফর্ম্যাট ব্যবহার করতে সক্ষম হতে পারেন। এটি আরও স্থান ব্যবহার করতে পারে, এটি কম ব্যবহার করতে পারে।

উদাহরণস্বরূপ, সংখ্যাগুলি 5এবং 1234567অঙ্কটি অক্ষর ব্যবহার করে প্লেটেক্সটে উপস্থাপন করা যেতে পারে, যার ফলে ডিস্ক 3 এ এই বিট ক্রমগুলি ঘটে :

00110101 00000000
00110001 00110010 00110011 00110100 00110101 00110110 00110111 00000000

বিকল্পভাবে, আপনি 32-বিট টু এর পরিপূরক ব্যবহার করতে পারেন :

00000000 00000000 00000000 00000101
00000000 00010010 11010110 10000111

যা কম কমপ্যাক্ট উপস্থাপনা 5, তবে এর আরও কমপ্যাক্ট উপস্থাপনা 1234567

এবং আক্ষরিক অসীম অন্যান্য সংখ্যক উপস্থাপনা রয়েছে যার মধ্যে বিভিন্ন ধরণের সংক্ষিপ্ততা এবং নমনীয়তা থাকতে পারে, যদিও বাস্তবে এটি অনেকগুলি উপস্থাপনা ব্যবহৃত হয় তার চেয়ে অনেক কম less


1 ধরে নিচ্ছেন ইউটিএফ -8। কোনও চরিত্রের জন্য বিটের সঠিক ক্রম আপনি কোন নির্দিষ্ট এনকোডিংটি ব্যবহার করছেন তার উপর নির্ভর করে।

2 বা সত্যই, বিভিন্ন এনকোডিংগুলি দিয়ে কয়েকটি ফর্ম্যাট ।

3 আপনি যদি ভাবছেন যে এই আটটি শূন্যগুলি প্রান্তগুলি কী, তবে ভাল, আপনার ডাটা কত দীর্ঘ তা জানার কিছু উপায় প্রয়োজন। বিকল্পগুলি মূলত একটি চিহ্নিতকারীকে সিদ্ধ করে (আমি এটি ব্যবহার করেছিলাম, নাল বাইটের মাধ্যমে), দৈর্ঘ্যটি সংরক্ষণের জন্য উত্সর্গীকৃত স্থান (পাস্কাল একটি স্ট্রিংয়ের দৈর্ঘ্য সংরক্ষণের জন্য বাইট ব্যবহার করেছিল), বা একটি নির্দিষ্ট আকার (পরবর্তী দুটির পরিপূরকটিতে ব্যবহৃত হয়) উদাহরণস্বরূপ)।


6
একটি সামান্য পার্থক্য হ'ল এন্ড-অফ-লাইনের প্রতিনিধিত্ব, যা ইউনিক্স / বাইনারিতে একটি বাইট (এলএফ) লাগে যখন উইন্ডোজ / পাঠ্যে দুটি বাইট লাগে (সিআর-এলএফ)।
গ্লেন র্যান্ডার্স-পেহারসন

97
জন্য +1 "লেখ মাথা দুই উল্লম্ব লাইন এবং থালা মধ্যে একটি অনুভূমিক রেখা খুদা না
Tulains কর্ডোভা

@ বার্ডকোপারড আপনি ঠিক বলেছেন! ;)
টিউলাইনস কর্ডোভা

2
@BaardKopperud নেই / ছিল LightScribe , কিন্তু যে সত্যিই কম্পিউটার পড়া, যদিও সম্ভবত গুগল গগলস ভালো কিছু কিছু LightScribe লেবেল পড়তে পারি জন্য বোঝানো হয় নি। তবে প্রকৃত ডেটা স্টোরেজ পক্ষের পক্ষে এটি করা বেশ আকর্ষণীয় হবে। অ্যাসিলোস্কোপ দিয়ে চলাকালীন আমাকে অভিনব গ্রাফিক্সের গানগুলি মনে করিয়ে দেয় ।
বিট্রি

2
@ তুলিনস কর্ডোভা যদিও আসলে, টুরিং মেশিনগুলি একটি স্বেচ্ছাসেবী বর্ণমালায় কাজ করে, তাই তাত্ত্বিকভাবে তারা টেপটিতে চিঠি লিখতে পারে । এটি ঠিক তাই ঘটে আমরা একটি দুটি প্রতীক বর্ণমালা ব্যবহার স্থির করেছি settled
উদ্যানক্ষেত্র

15

আমি এটি ভাবতে একটি দুর্দান্ত মজাদার জিনিস। বাইনারিটি আপনি যেভাবে কথা বলছেন সেভাবে 1 সে 0 হয় না।

একটি পরিমাণ আছে তা কল্পনা করুন, আমি আপনাকে বলতে পারি এটির পরিমাণটি বিভিন্নভাবে:

  • Nine ইংরেজীতে
  • Neuf ফরাসি মধ্যে
  • 9 আরবি সংখ্যায়
  • IX রোমান সংখ্যাগুলিতে
  • 1001 আরবী সংখ্যা সহ বাইনারি
  • on off off on অন ​​/ অফ সহ বাইনারি
  • high low low high বাইনারিটিতে ভোল্টেজ বা লিভার বা জলের স্তর বা বৈদ্যুতিক চার্জ ... বা ইংরেজি শব্দ 'উচ্চ' এবং 'নিম্ন' দিয়ে উপস্থাপিত হয়

তারা সবাই একই জিনিস উপস্থাপন করে। এখানে পয়েন্টটি হ'ল বাইনারি 1 সে 0 এবং 0 হয় না, এটি কোনও মানের প্রতিনিধিত্ব করার একমাত্র উপায়।

আপনি যখন এইচ-কে বাইনারি রূপান্তরিত করার কথা বলেন, আপনি সম্ভবত 10101010 স্ক্রিনে দেখতে কল্পনা করেছেন - তবে এটি "বাইনারি" নয়, এটি প্রতিটি বাইনারি বিটের এক অঙ্ক for

হ্যাঁ, আপনি যদি H"বাইনারি" তে রূপান্তর করেন তবে লোকেরা সাধারণত এটি সম্পর্কে কথা বলে থাকে এবং তারপরে আরবি অঙ্কগুলিতে উপস্থাপন করে এবং এটি সংরক্ষণ করে রাখে, যেভাবে রূপান্তর Hকরতে aitchআরও স্থান লাগে তাতে আরও জায়গা লাগে।

তবে আপনি দেখতে পাচ্ছেন যে বাইনারি কোনও পরিমাণকে উপস্থাপনের একটি উপায়, পাশাপাশি এই যুক্তিটি দ্বারা "যদি আমি এইচটিকে বাইনারি রূপান্তরিত করি এবং high low high low high low high lowএরপরে উপস্থাপন করি তবে এটি 35 টি অক্ষরের চেয়ে বেশি হবে 10101010! তবে এটি দুটিই 'বাইনারি' .. তাহলে অন্য একজনের চেয়ে বড় কেমন হয়?

এই ওপারে ভাবছি হল কিভাবে Hএকটি কম্পিউটার দ্বারা সংরক্ষিত হয়, এবং দেখুন যে Hএকই পরিমাণ - নিজেই শুধু একটি পরিমাণ প্রতিনিধিত্বমূলক একটি উপায় 72, 01001000অথবা seventy twoবা ASCII অক্ষর কোড H। যা প্লেইন টেক্সট 8bittree এর উত্তর হল হয় বাইনারি, কিন্তু এই আমাকে কি যে দেখানোর চেষ্টা করছে মানে

সুতরাং আপনি একটি কম্পিউটারে একটি বিট প্যাটার্ন পেতে 01001000এবং এর অর্থ কি? যে কোনও কিছু - একটি জিপ ফাইলের অংশ হিসাবে একটি চরিত্র হিসাবে একটি সংখ্যা হিসাবে কথা বলা যেতে পারে, এটি তৈরি করা ব্যক্তির উদ্দেশ্য কী ছিল তা নির্ভর করে। যদি আপনি জানেন যে এটি সাধারণ পাঠ্য হিসাবে অনুমিত হয়, তবে এটি একটি অক্ষর এনকোডিং থেকে এসেছে H-> 01001000এবং আপনি এটিকে অন্যভাবে অক্ষরের এনকোডিং সারণিতে - এএসসিআইআই, ইউটিএফ -8, শিফট-জিস ইত্যাদি দেখতে পাবেন এবং সঠিক ফন্টটি সন্ধান করুন চরিত্র এবং আউট একটি Hবা যাই হোক না কেন আসে । অথবা যদি আপনি এটি তৈরি করেছেন এমন ব্যক্তির চেয়ে আলাদা এনকোডিং লুকআপ ব্যবহার করেন তবে ভুল চরিত্রটি বেরিয়ে আসে। এটি @ এরিক লিপার্টের লিঙ্ক।

তবে আমি যেমন এটি লিখছি এবং আপনি যেমন এটি সম্পর্কে ভাবেন Hতেমন একটি বাইট এবং 010010008 বাইট হয়, হ্যাঁ এটি আরও স্থান। এবং হ্যাঁ এটি (একটি উপস্থাপনা) বাইনারি। তবে এটি কম্পিউটার ব্যবহারের চেয়ে বিমূর্ততার উচ্চতর স্তরে রয়েছে - এএসসিআইআই অক্ষরগুলিতে বাইনারি প্রদর্শিত হয়, যেখানে প্রতিটি অক্ষর বাইনারি বিট প্যাটার্নযুক্ত পর্দার পিছনে উপস্থাপিত হয়, প্রতিটিই Hএকাকী বড়।


12

বাইনারি সমতুল্য বার্তা সংরক্ষণের চেয়ে সরল পাঠ্য ডেটা সংরক্ষণ করা কি কম জায়গা নেয়?

কখনো না.

আপনার কম্পিউটার ইতিমধ্যে সমতুল্য বাইনারি উপস্থাপনায় সাধারণ পাঠ্য ডেটা সঞ্চয় করে। বাইনারি বনাম সরল পাঠ্য হিসাবে কিছু সংরক্ষণ করা কেবল কম্পিউটারটি সেই অভিন্ন বাইনারি স্ট্রিমটিকে কীভাবে ব্যাখ্যা করা উচিত তা কেবলমাত্র ইঙ্গিত দেয় ।

আমার কাছে মনে হয় চিঠিগুলি ব্যবহার করা ধরণের সংকোচনের মতো হবে, যেখানে একটি চিহ্ন একাধিকের জন্য দাঁড়িয়ে।

এটা সত্যি সত্য। একটি চরিত্র একাধিক বিট উপস্থাপন করবে। সমস্যাটি হ'ল তারা বিভিন্ন আকারের জিনিস। এটি কেবল 1 বা 0 টি সংরক্ষণ করতে একটি বিট লাগে তবে একটি সরল পাঠ্য অক্ষর সংরক্ষণ করতে 8 বিট (বা আরও)। আপনি অক্ষর ব্যবহার করে কিছুই অর্জন করতে পারেন না।

যদি কিছু হয় তবে আপনি জিনিসগুলি অন্য উপায়ে সংকুচিত করতে পারেন। সর্বোপরি, 8 বিটগুলি 256 বিভিন্ন পৃথক সম্ভাব্য মান, তবুও সরল পাঠটি সাধারণত অক্ষর, সংখ্যা এবং কয়েকটি বিরামচিহ্নের অক্ষরে সীমাবদ্ধ থাকে। এটি যতটা বিট লাগে তার দরকার নেই।


3
ঠিক আছে, কখনও কখনও :-) দুটি সম্ভাব্য কেস আমি ভাবতে পারি। 1) আপনার সংক্ষিপ্ত পাঠের একটি স্ট্রিং রয়েছে যা আপনি সঙ্কুচিত করেন। সংক্ষিপ্ত ফাইলটিতে কিছু মেটাডেটা থাকে, যা সংকোচিত ফাইলটিকে মূল স্ট্রিংয়ের চেয়ে বড় করে তোলে। 2) আপনার কিছু ভাসমান পয়েন্টের মান রয়েছে, 1.2 বলুন। পাঠ্য হিসাবে সংরক্ষণ করা 3 বাইট (একটি টার্মিনেটর সহ 4) হবে, বাইনারি ডাবল সংরক্ষণ করতে 8 বাইট লাগবে।
জামেস্কেফ

5
উত্তরটি আসলে 'বাইনারি' দ্বারা আপনি কী বোঝাতে চান তার উপর নির্ভর করে। উদাহরণস্বরূপ, ইউটিএফ -32 এএসসিআইআই-এর চেয়ে চারগুণ বেশি জায়গা নেয়, সুতরাং যদি 'সরল পাঠ্য' দ্বারা আপনি এএসসিআইআই বোঝায় এবং 'বাইনারি' দ্বারা আপনি ইউটিএফ -32 বোঝাতে চেয়েছিলেন তবে সরল পাঠ্যটি বাইনারি থেকে কম স্থান গ্রহণ করবে । তবে আপনি সংজ্ঞাগুলি বিপরীত করতে পারেন এবং বিপরীত ফলাফল পেতে পারেন।
ডেভিড কনরাড

1
@ ডেভিডকনরড ওয়েল, এটি কেবল "সরল পাঠ্যের মতো জিনিস নেই" এ স্কার্ট করে। আপনার নিকটতম জিনিসটি হ'ল একটি বাইনারি ফাইল যা কোনও মেটাডেটা / শিরোনামের ধরণটি সনাক্ত করে না এবং অনুমান করে "অবশ্যই XXX হিসাবে এনকোড হওয়া পাঠ্য থাকতে হবে!"! একটি সময় হয়েছে যখন "প্লেইন টেক্সট ফাইল" অর্থ সীমিত প্রসঙ্গে যুক্তিসঙ্গত কিছু ছিল, তবে এটি আর হয় না। আপনি যেটি পেতে পারেন তা হ'ল "ফাইলের সমস্ত ডেটা পাঠ্য হিসাবে এনকোড করা হয়" এর বিপরীতে "ডেটার কিছু / সমস্ত অংশ পাঠ্য হিসাবে এনকোড করা হয় না"।
লুয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.