बिट फ़ील्ड का उपयोग बिट्स के संदर्भ में चर के आकार को निर्दिष्ट करने के लिए किया जाता है। आम तौर पर, इसे एक संरचना के अंदर परिभाषित किया जाता है।
- बिट फ़ील्ड:1 बाइट=8 बिट
उदाहरण के लिए,
एक उदाहरण नीचे समझाया गया है -
Struct info{ int x:2; };
यहाँ, x 2बिट्स पर कब्जा कर रहा है।
किसी बिट फ़ील्ड को उसकी सीमा से बाहर किसी भी मान को निर्दिष्ट करना अमान्य है।
हम बिट फ़ील्ड के मान को इनपुट करने के लिए स्कैनफ़ स्टेटमेंट का उपयोग नहीं कर सकते, क्योंकि आकार और पता ऑपरेटर बिट फ़ील्ड पर लागू नहीं हो सकते।
डेटा प्रकार जिन्हें हम एक बिट फ़ील्ड को असाइन कर सकते हैं वे इंट, साइन इंट, अहस्ताक्षरित इंट हो सकते हैं।
कार्यक्रम
अहस्ताक्षरित int के लिए C 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, यानी, unsigned int 0 से 23 -1 के बीच है, जो 0 से 7 के बराबर है।
कार्यक्रम
नीचे दिए गए कार्यक्रम को देखें इंट के लिए -
#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,