首页  > 教育解读  > c语言如何写二进制数据

c语言如何写二进制数据

2025-05-03 15:41:48
许老师
许老师已认证

许老师为您分享以下优质知识

在C语言中,写入二进制数据主要有以下三种方式:

一、使用 `fwrite` 函数写入二进制文件

这是最常用的方法,通过 `fopen` 以二进制模式打开文件,然后使用 `fwrite` 写入数据。

```c

include

int main() {

FILE *file = fopen("data.bin", "wb");

if (!file) {

printf("无法创建文件!n");

return 1;

}

int number = 42;

float score = 95.5f;

char name[] = "张三";

fwrite(&number, sizeof(number), 1, file);

fwrite(&score, sizeof(score), 1, file);

fwrite(name, sizeof(name), 1, file);

fclose(file);

return 0;

}

```

二、使用位操作符直接操作二进制位

通过按位与、或、异或等运算符,可以修改整数的二进制位。

```c

include

int main() {

int a = 0b1000; // 8

int b = 0b0100; // 4

a |= b; // 按位或运算,a = 12 (1100)

printf("a: %bn", a); // 输出 1100

return 0;

}

```

三、使用位域结构体存储二进制数据

通过定义位域,可以在结构体中高效存储特定位数的二进制数据。

```c

include

struct BitField {

unsigned int a : 4; // 4位

unsigned int b : 2; // 2位

};

int main() {

struct BitField bf = {0b1010, 0b11}; // a=10, b=3

printf("a: %u, b: %un", bf.a, bf.b); // 输出 10 3

return 0;

}

```

说明:

文件操作:

使用 `fopen` 时需指定 `"wb"` 模式(二进制写入),`fwrite` 需传递数据指针及大小。

位操作:

适用于需要精细控制二进制位的场景,如加密、硬件寄存器操作等。

位域:

适合结构体中存储固定位数的字段,节省内存空间。