বিট ক্ষেত্রটি বিটের পরিপ্রেক্ষিতে ভেরিয়েবলের আকার নির্দিষ্ট করার জন্য ব্যবহৃত হয়। সাধারণত, এটি একটি কাঠামোর ভিতরে সংজ্ঞায়িত করা হয়।
- বিট ক্ষেত্র:1 বাইট =8 বিট
উদাহরণস্বরূপ,
একটি উদাহরণ নীচে ব্যাখ্যা করা হয়েছে -
Struct info{ int x:2; };
এখানে, x 2 বিট দখল করছে।
এটির পরিসরের বাইরে একটি বিট ফিল্ডে কোনো মান বরাদ্দ করা অবৈধ৷
৷আমরা বিট ফিল্ডের মান ইনপুট করার জন্য স্ক্যানফ স্টেটমেন্ট ব্যবহার করতে পারি না কারণ, সাইজ এবং অ্যাড্রেস অপারেটর বিট ফিল্ডে প্রযোজ্য হতে পারে না।
আমরা একটি বিট ফিল্ডে যে ডেটা প্রকারগুলি বরাদ্দ করতে পারি তা হতে পারে int, স্বাক্ষরিত int, আনসাইনড int৷
প্রোগ্রাম
আনসাইনড ইনটের জন্য C প্রোগ্রামটি নিচে দেওয়া হল −
#include<stdio.h> struct info{ unsigned int x:3;// assign bit field to unsigned int inside structure }; main(){ struct info i; i.x=8; printf("%d",i.x); }
আউটপুট
আউটপুট নিম্নরূপ &miuns;
0
ব্যাখ্যা
-
স্বাক্ষরবিহীন int-এর রেঞ্জ সূত্র হল 0 থেকে 2n-1 এবং n=বিটগুলির সংখ্যা৷
-
এখানে, n=3, অর্থাৎ স্বাক্ষরবিহীন int হল 0 থেকে 23 -1 এর মধ্যে, যা 0 থেকে 7 এর সমান।
প্রোগ্রাম
int-এর জন্য নীচে দেওয়া প্রোগ্রামটি পড়ুন −
#include<stdio.h> struct info{ int x:3;// assign bit field to int inside structure }; main(){ struct info i; i.x=4; printf("%d",i.x); }
আউটপুট
আপনি নিম্নলিখিত আউটপুট পাবেন -
-4
ব্যাখ্যা
- স্বাক্ষরিত int =(-2(n-1)+1) থেকে 2n-1-এর জন্য রেঞ্জ সূত্র, যেখানে n বিটের সংখ্যা নয়।
- প্রোগ্রামে, n=3
- সূত্রে এটি প্রতিস্থাপন করুন এবং আমাদের নিম্নলিখিত ফলাফল রয়েছে -
=(-2(3-1)+1) to 23-1 =(-22+1) to 22 = -3 to 4 i.e., -3,-2,-1,0,1,2,3,4,