2 回答

TA貢獻1794條經(jīng)驗 獲得超7個贊
fwrite 寫出的數(shù)據(jù)量 是以字節(jié)為單位的,所以不能只輸出 1個字元。
你可以把每8個 字元 湊成一個字節(jié) 輸出,最后一次輸出 也許不得不 浪費 若干字元。
你可以用 位運算 湊字節(jié)。 也可以 用 結(jié)構(gòu)體 位域 定義方法 作 bit 分配。
================
用 結(jié)構(gòu)體 位域 定義方法 作 bit 分配的例子:
聯(lián)合體用來方便地用16進制屏幕輸出1字節(jié)。
fwrite() 輸出可以直接用結(jié)構(gòu),不需要聯(lián)合體那部分程序。
#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); // 打印這一字節(jié)。
return 0;
}
- 2 回答
- 0 關(guān)注
- 482 瀏覽
添加回答
舉報