Bahasa Linux C mempunyai bit; dalam bahasa mikropengawal C, bit ialah kata kunci baharu, selalunya digunakan untuk mentakrifkan "pembolehubah bit"; Atau definisi bit; 2. Tentukan melalui medan bit (dalam struktur);
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Adakah sedikit untuk bahasa Linux C?
Ya.
Bahasa C mentakrifkan data jenis bit:
1. Definisi melalui sbit atau bit
sbit dipetakan ke port IO (IO seperti P1^ 1 "bit" port)
bit berada dalam ruang yang boleh dialamatkan bit dalam RAM dan biasanya digunakan sebagai bit bendera untuk pertimbangan program.
Anggap mereka sebagai satu luaran (sbit) dan satu dalaman (bit).
Dalam bahasa mikropengawal C, bit ialah kata kunci baharu, selalunya digunakan untuk mentakrifkan "pembolehubah bit"
2. Takrifkan melalui medan bit (dalam struktur)
Definisi medan bit dan perihalan pembolehubah medan bit Definisi medan bit adalah serupa dengan definisi struktur, bentuknya ialah:
nama struktur medan bit struct
{ senarai medan bit}; > Bentuk senarai medan bit ialah: Jenis nama domain bit penentu: panjang medan bit
Contohnya:
Penerangan pembolehubah medan bit adalah sama seperti perihalan pembolehubah struktur. Anda boleh mentakrifkan dahulu dan kemudian menerangkan, mentakrifkan dan menerangkan pada masa yang sama, atau menerangkan secara langsung. Contohnya:struct bs { int a:8; int b:2; int c:6; };
struct bs { int a:8; int b:2; int c:6; }data;
1. Medan bit mesti disimpan dalam bait yang sama dan tidak boleh menjangkau dua bait. Jika ruang baki satu bait tidak mencukupi untuk menyimpan medan bit yang lain, medan bit hendaklah disimpan dari unit seterusnya. Anda juga boleh dengan sengaja memulakan medan sedikit dari unit seterusnya. Contohnya:
Dalam definisi medan bit ini, a menduduki 4 bit bait pertama, isi 4 bit terakhir dengan 0 untuk menunjukkan tidak menggunakan, b bermula dari bait kedua, menduduki 4 bit , c Menduduki 4 jawatan.struct bs { unsigned a:4 unsigned :0 /*空域*/ unsigned b:4 /*从下一单元开始存放*/ unsigned c:4 }
2. Memandangkan medan bit tidak dibenarkan menjangkau dua bait, panjang medan bit tidak boleh lebih besar daripada panjang satu bait, yang bermaksud ia tidak boleh melebihi 8 bit binari.
3. Medan bit tidak boleh mempunyai nama domain bit, yang mana ia hanya digunakan untuk pengisian atau pelarasan kedudukan. Medan bit yang tidak dinamakan tidak boleh digunakan. Contohnya:
Seperti yang dapat dilihat daripada analisis di atas, medan bit pada dasarnya adalah jenis struktur, tetapi ahlinya diperuntukkan dalam istilah binari.struct k { int a:1 int :2 /*该2位不能使用*/ int b:3 int c:2 };
2. Penggunaan medan bit
Penggunaan medan bit adalah sama seperti penggunaan ahli struktur Bentuk amnya ialah: Nama pembolehubah medan bit • Nama domain bit Medan bit membenarkan output dalam pelbagai format.
Contoh program di atas mentakrifkan struktur medan bit bs, dan tiga medan bit ialah a, b dan c. Bit pembolehubah jenis bs dan pembolehubah penunjuk PBit yang menunjuk kepada jenis bs dijelaskan. Ini bermakna bahawa medan bit juga boleh menggunakan penunjuk.main(){ struct bs { unsigned a:1; unsigned b:3; unsigned c:4; } bit,*PBit; bit.a=1; bit.b=7; bit.c=15; printf("%d,%d,%d\n",bit.a,bit.b,bit.c); PBit=&bit; PBit->a=0; PBit->b&=3; PBit->c|=1; printf("%d,%d,%d\n",PBit->a,PBit->b,PBit->c); }
Baris 9, 10, dan 11 program memberikan nilai masing-masing kepada tiga medan bit. (Perlu diingatkan bahawa tugasan tidak boleh melebihi julat medan bit yang dibenarkan) Baris 12 program mengeluarkan kandungan tiga medan dalam format integer. Baris 13 menghantar alamat bit pembolehubah medan bit ke pembolehubah penunjuk PBit. Baris 14 menggunakan penunjuk untuk menetapkan semula medan bit a kepada 0. Baris 15 menggunakan operator bit majmuk "&=" Baris ini bersamaan dengan: PBit->b=PBit->b&3. Nilai asal dalam medan bit b ialah 7, dan hasil operasi AND dengan 3 ialah 3 (111&011=011, nilai perpuluhan ialah 3). Begitu juga, operasi bit kompaun "|=" digunakan dalam baris 16 program, yang bersamaan dengan: PBit->c=PBit->c|1 dan hasilnya ialah 15. Baris 17 program mengeluarkan nilai tiga medan ini menggunakan penunjuk.
Tujuan utama menggunakan medan bit adalah untuk memampatkan storan Peraturan am ialah:
1) Jika jenis medan bit bersebelahan adalah sama dan jumlah lebar bitnya adalah kurang. daripada saiz saiz jenis , maka medan berikut akan disimpan serta-merta di sebelah medan sebelumnya sehingga ia tidak dapat ditampung; 2) Jika jenis medan medan bit bersebelahan adalah sama, tetapi jumlahnya; daripada lebar bit mereka adalah lebih besar daripada saiz saiz jenis, maka medan berikut Medan akan bermula dari unit storan baharu dengan offset yang merupakan gandaan integer saiz jenisnya; medan diselingi dengan medan bukan medan bit, tiada pemampatan akan dilakukan;
4) Jumlah saiz keseluruhan struktur ialah gandaan integer saiz ahli jenis asas terluas.
3. Beroperasi dengan menggabungkan operator bit
Pembelajaran yang disyorkan: "tutorial video linux
"Atas ialah kandungan terperinci Adakah bahasa Linux C mempunyai bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!