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 关注
- 385 浏览
添加回答
举报
0/150
提交
取消