যদিও আজ, একটি "বাইট" এর অর্থ "8 বিট", এটি সর্বদা সত্য হয় নি। মেশিনগুলি 4 বিট, 8 বিট, 12 বিট, 16 বিট, 32 বিট এবং 36 বিট (এবং সম্ভবত কিছু অন্যান্য আকারের) এর ঠিকানাযোগ্য অংশগুলি ব্যবহার করেছে। সি এর নকশা উদ্দেশ্যগুলির মধ্যে একটি ছিল বিভিন্ন মেমরির আকার এবং কনফিগারেশনযুক্ত মেশিনগুলিতে ব্যবহারযোগ্য।
আমি মনে করি ডিজাইনের অভিপ্রায়টি মূলত ছিল যে প্রতিটি প্রকারের int
মধ্যে ছোট ছোট জিনিস যা বিভিন্ন আকারের সংখ্যা পরিচালনা করতে পারে এবং int
এটি সবচেয়ে কার্যকর "সাধারণ-উদ্দেশ্য" আকার যা +/- 32767 পরিচালনা করতে পারে। আমি মনে করি না যে এমন একটি ভাষা তৈরি করার কোনও ইচ্ছা বা উদ্দেশ্য ছিল যা কম্পিউটারগুলি এতটাই শক্তিশালী হয়ে উঠল যে এখনও ব্যবহারের মধ্যে থাকবে যে 64৪-বিট সংখ্যায় অপারেশনগুলির জন্য ছোট ছোটগুলিতে অপারেশন হিসাবে একই খরচ হয়।
সি এর পূর্ণসংখ্যার ধরণের শব্দার্থবিজ্ঞানের ক্ষেত্রে সবচেয়ে বড় সমস্যাটি হ'ল কিছু প্রসঙ্গে তারা মূল সংখ্যা বা গাণিতিক পূর্ণসংখ্যার প্রতিনিধিত্ব করে, অন্য প্রসঙ্গে প্রসঙ্গত সংমিশ্রণ মোড 2 ^ n এর মোড়ক বিমূর্ত বিজাতীয় রিংয়ের সদস্যদের প্রতিনিধিত্ব করতে ব্যবহৃত হয় [সুতরাং যেমন বিয়োগফল 0 থেকে সর্বাধিক উপস্থাপিত মান 1 টি প্রদানের জন্য সংজ্ঞায়িত করা হয়, তবে কম্পিউটার শব্দের আকারগুলি 16 বিটের কাছাকাছি হওয়ার সময় এবং কম্পাইলাররা যে দিনগুলিকে মনে করেছিল তার ভিত্তিতে আচরণগুলি আরও নির্দিষ্ট করা হয় (এবং একটি 36-বিট শব্দের আকার বিশাল হত ) পরিবর্তে 64৪-বিট মেশিনে কী বোঝাতে পারে তার ভিত্তিতে। ফলস্বরূপ, একটি 32 স্বল্প স্বাক্ষরিত 32-বিট মান থেকে 32-বিট স্বাক্ষরিত মানটি বিয়োগের ফলাফলটি হয় বড় 32-বিট স্বাক্ষরযুক্ত মান বা একটি নেতিবাচক 64৪-বিট সংখ্যা হতে পারে।
<stdint.h>