Trường bit được sử dụng để xác định kích thước của biến theo bit. Nói chung, nó được định nghĩa bên trong một cấu trúc.
- Trường bit:1 byte =8 bit
Ví dụ:
Một ví dụ được giải thích bên dưới -
Struct info{ int x:2; };
Ở đây, x đang chiếm 2bit.
Việc gán bất kỳ giá trị nào cho một trường bit ngoài phạm vi của nó là không hợp lệ.
Chúng tôi không thể sử dụng câu lệnh scanf để nhập giá trị của trường bit vì toán tử kích thước và địa chỉ không thể áp dụng cho trường bit.
Các kiểu dữ liệu mà chúng ta có thể gán cho một trường bit có thể là int, int có dấu, int không dấu.
Chương trình
Sau đây là chương trình C for unsigned 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); }
Đầu ra
Kết quả như sau &miuns;
0
Giải thích
-
Công thức phạm vi cho int không dấu là 0 đến 2n-1 và n =không có bit.
-
Ở đây, n =3, tức là int không dấu nằm trong khoảng từ 0 đến 23 -1, bằng 0 đến 7.
Chương trình
Tham khảo chương trình được cung cấp bên dưới cho 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); }
Đầu ra
Bạn sẽ nhận được kết quả sau -
-4
Giải thích
- Công thức phạm vi cho int có dấu =(-2 (n-1) +1) đến 2n-1, trong đó n là không có bit.
- Trong chương trình, n =3
- Thay thế điều này vào công thức và chúng tôi có kết quả sau -
=(-2(3-1)+1) to 23-1 =(-22+1) to 22 = -3 to 4 i.e., -3,-2,-1,0,1,2,3,4,