কম্পিউটারের ভিতরে বাইট হিসাবে কেন কেবল বুলিয়ান মান সংরক্ষণ করা হয় যখন এটির জন্য কেবল একটি বিট প্রয়োজন


32

আমি সম্প্রতি কোড লিখতে শিখতে শুরু করেছি এবং আমার বইতে আমি এই প্রশ্নটি নিয়ে এসেছি। "বুলিয়ান মানটি কম্পিউটারের বাইট হিসাবে কেন সংরক্ষণ করা হয় যখন তার জন্য কেবল একটি বিট প্রয়োজন?" কেউ কি এই প্রশ্নে আরও আলোকপাত করতে পারে?


10
এটি কঠোরভাবে সত্য বলছে না। কিছু কিছু ভাষা (যেমন সি / সি ++) বুলিয়ান মানগুলি একক বিট হিসাবে সংরক্ষণ করার উপায় সরবরাহ করে, যদি এই বিটগুলি একক বাইটে বান্ডিল করা হয়। অন্য কথায়, সি তে, আপনি আট বুলিয়ান একটি বাইটে সঞ্চয় করতে পারেন। মেমরিটি সস্তা এবং প্রসেসর 8/16/32/64 বিট অংশগুলিতে ডেটা ম্যানিপুলেট করে যেহেতু খুব কমই এটি ব্যবহার করে।
রোবট

অনুরূপ প্রশ্নের এই উত্তরটি আপনার দেখতে হবে! আপনি সেখানে বিশাল রেফারেন্স পাবেন ... চিয়ার্স!
স্যাম


ঘনিষ্ঠভাবে সম্পর্কিত: স্ট্যাকওভারফ্লো.com
বেন লি

উত্তর:


49

সিপিইউ সহজেই কী সম্বোধন করতে পারে তার সাথে এটি করা দরকার। উদাহরণস্বরূপ একটি x86 প্রসেসরে একটি eax(32 বিট), ax(16 বিট) এবং একটি ah(8 বিট) রয়েছে তবে কোনও একক বিট নিবন্ধক নেই। সুতরাং এটি একক বিট ব্যবহার করার জন্য সিপিইউতে মান পরিবর্তন করতে একটি পঠন / পরিবর্তন / লিখতে হবে। এটি যদি বাইট হিসাবে সংরক্ষণ করা হয় তবে একটি একক পঠন বা লেখার মূল্য পরীক্ষা করতে / পরিবর্তন করতে ব্যবহার করা যেতে পারে।

অতিরিক্তভাবে কেউ ভাবতে পারেন যে পুরো বাইটের তুলনায় সিঙ্গল বিট ব্যবহার করা ভাল কি না, সমস্ত বাইট পরে 7 বিট নষ্ট করবে। কমপক্ষে x86 এবং আমি মনে করি অন্যদের কাছে স্থানটি কোনও বাধা না দেওয়া উচিত কারণ একটি বিলের পঠন / পরিবর্তন / লেখার চেয়ে দ্রুত একটি সেট সেট / সাফ করার জন্য সাধারণত একটি নির্দেশনা রয়েছে । ব্যক্তিগত পরিমাপ থেকে আমি দেখেছি / পড়ার / মোড / রাইটিং পদ্ধতিটি একক নির্দেশাবলীর চেয়ে 5x ধীর হতে পারে be


6
আপনি যে শব্দটি অনুপস্থিত রয়েছেন তা হ'ল "বাউন্ডারি অ্যালাইনমেন্ট"।
মনোজ আর

3
অন্যদিকে, আমি পৃথক বিটগুলি ব্যবহার করে একটি 2x স্পিডআপ দেখেছি, সম্ভবত একটি ছোট ডেটা সেট সহ ক্যাশে ব্যবহারের আরও ভাল ব্যবহারের কারণে।
মাইকেল বর্গওয়ার্ট

5

@ Barrem23 ব্যাখ্যা হিসাবে , তথ্য হতে হবে Addressable , এবং প্রচলিত আর্কিটেকচারের উপর ক্ষুদ্রতম সীমানা একটি বাইট।

কিন্তু যেহেতু এই প্রশ্ন যেমন ছাগু ট্যাগ করা হয় , এটা মূল্য ইশারা আউট যে হতে পারে std::vector<bool>হয় বিশেষ অনুমতি পৃথক উপাদান বিট হিসাবে সংরক্ষিত করা । এটি কিছু কার্যকারিতা ত্যাগ করে স্থান বাঁচাবে (উদাহরণস্বরূপ, std::searchকাজ নাও করতে পারে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.