c語言,怎樣用fwrite 函數寫1個bit的0或1
2 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
fwrite 寫出的數據量 是以字節為單位的,所以不能只輸出 1個字元。
你可以把每8個 字元 湊成一個字節 輸出,最后一次輸出 也許不得不 浪費 若干字元。
你可以用 位運算 湊字節。 也可以 用 結構體 位域 定義方法 作 bit 分配。
================
用 結構體 位域 定義方法 作 bit 分配的例子:
聯合體用來方便地用16進制屏幕輸出1字節。
fwrite() 輸出可以直接用結構,不需要聯合體那部分程序。
#include <stdio.h>
typedef struct bs
{
unsigned a1:1; unsigned a2:1;
unsigned a3:1; unsigned a4:1;
unsigned a5:1; unsigned a6:1;
unsigned a7:1; unsigned a8:1;
}BS;
union U{ BS b; unsigned char c; }
main(){
BS b={0};
union U uu;
b.a1=1;b.a2=1;b.a3=1; // 字元賦值
uu.b=b;
printf("0x%02x",uu.c); // 打印這一字節。
return 0;
}
- 2 回答
- 0 關注
- 487 瀏覽
添加回答
舉報
0/150
提交
取消