ฟิลด์บิตใช้สำหรับระบุขนาดของตัวแปรในรูปของบิต โดยทั่วไปจะมีการกำหนดไว้ภายในโครงสร้าง
- ฟิลด์บิต:1 ไบต์=8 บิต
ตัวอย่างเช่น
อธิบายตัวอย่างด้านล่าง −
Struct info{ int x:2; };
ที่นี่ x ครอบครอง 2 บิต
การกำหนดค่าใดๆ ให้กับบิตฟิลด์ที่อยู่นอกช่วงนั้นไม่ถูกต้อง
เราไม่สามารถใช้คำสั่ง scanf เพื่อป้อนค่าของฟิลด์บิตได้ เนื่องจากตัวดำเนินการขนาดและที่อยู่ไม่สามารถใช้กับฟิลด์บิตได้
ชนิดข้อมูลที่เราสามารถกำหนดให้กับฟิลด์บิตได้ ได้แก่ int, sign int, unsigned int
โปรแกรม
ต่อไปนี้เป็นโปรแกรม C สำหรับ int ที่ไม่ได้ลงชื่อ −
#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=no ของบิต
-
ที่นี่ 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,