Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

อธิบายบิตฟิลด์ในภาษาซีโดยใช้แนวคิดโครงสร้าง


ฟิลด์บิตใช้สำหรับระบุขนาดของตัวแปรในรูปของบิต โดยทั่วไปจะมีการกำหนดไว้ภายในโครงสร้าง

  • ฟิลด์บิต: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,