请问我该怎样用fwrite 函数写1个bit的0或1?

c语言,怎样用fwrite 函数写1个bit的0或1

梵蒂冈之花
浏览 386回答 2
2回答

慕田峪9158850

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;}

智慧大石

计算机存储最小单位是8位,亲,没有办法以一个bit为单位存储的
打开App,查看更多内容
随时随地看视频慕课网APP