बिट फ़ील्ड का उपयोग वेरिएबल के आकार को बिट्स के संदर्भ में निर्दिष्ट करने के लिए किया जाता है। आमतौर पर, इसे एक संरचना के अंदर परिभाषित किया जाता है।
- बिट फ़ील्ड: 1 बाइट = 8 बिट्स
उदाहरण के लिए,
नीचे एक उदाहरण समझाया गया है:
Struct info{
int x:2;
};
यहां, x 2 बिट्स पर कब्जा करता है।
बिट फ़ील्ड को उसकी सीमा से बाहर कोई मान निर्दिष्ट करना अमान्य है।
हम बिट फ़ील्ड के मान को इनपुट करने के लिए scanf स्टेटमेंट का उपयोग नहीं कर सकते क्योंकि, sizeof और एड्रेस ऑपरेटर बिट फ़ील्ड पर लागू नहीं हो सकते।
बिट फ़ील्ड को निर्दिष्ट किए जा सकने वाले डेटा प्रकार int, signed int, unsigned int हो सकते हैं।
प्रोग्राम
निम्नलिखित C प्रोग्राम unsigned int के लिए है:
#include<stdio.h>
struct info{
unsigned int x:3;// संरचना के अंदर बिट फ़ील्ड को unsigned int निर्दिष्ट करें
};
main(){
struct info i;
i.x=8;
printf("%d",i.x);
}
आउटपुट
आउटपुट निम्नानुसार है:
0
व्याख्या
unsigned int के लिए रेंज फॉर्मूला 0 से 2^n-1 है और n=बिट्स की संख्या।
यहां, n=3, यानी unsigned int 0 से 2^3-1 के बीच है, जो 0 से 7 के बराबर है।

प्रोग्राम
नीचे दिए गए प्रोग्राम को int के लिए देखें:
#include<stdio.h>
struct info{
int x:3;// संरचना के अंदर बिट फ़ील्ड को int निर्दिष्ट करें
};
main(){
struct info i;
i.x=4;
printf("%d",i.x);
}
आउटपुट
आपको निम्नलिखित आउटपुट प्राप्त होगा:
-4
व्याख्या
- signed int के लिए रेंज फॉर्मूला = (-2^(n-1)) से 2^(n-1)-1, जहां n बिट्स की संख्या है।
- प्रोग्राम में, n=3
- इसे फॉर्मूला में प्रतिस्थापित करें और हमें निम्न परिणाम मिलता है:
=(-2^(3-1)) to 2^(3-1)-1 =(-2^2) to 2^2-1 = -4 to 3 i.e., -4,-3,-2,-1,0,1,2,3