在C语言中编程二进制主要涉及以下方面:
写入二进制文件
使用 `fopen` 函数以二进制模式("wb")打开文件。
使用 `fwrite` 函数将数据写入文件。需要传递数据的地址、数据类型的大小和要写入的数据量。
示例代码:
```c
include
int main() {
int num = 123;
FILE *fp = fopen("data.bin", "wb");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
fwrite(&num, sizeof(int), 1, fp);
fclose(fp);
return 0;
}
```
读取二进制文件
使用 `fopen` 函数以二进制模式("rb")打开文件。
使用 `fread` 函数从文件读取数据。需要传递数据的地址、数据类型的大小和要读取的数据量。
示例代码:
```c
include
int main() {
FILE *fp = fopen("data.bin", "rb");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
int num;
fread(&num, sizeof(int), 1, fp);
fclose(fp);
printf("读取到的数字: %d\n", num);
return 0;
}
```
将其他数据类型转换为二进制并写入文件
可以将结构体等复杂数据类型转换为二进制并写入文件。使用 `fwrite` 函数时,传递结构体的地址和大小。
示例代码:
```c
include
typedef struct {
int id;
char name;
} Student;
int main() {
Student stu = {1, "小明"};
FILE *fp = fopen("data.bin", "wb");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
fwrite(&stu, sizeof(Student), 1, fp);
fclose(fp);
return 0;
}
```
从文件中读取二进制数据并转换为其他格式
可以从二进制文件中读取数据,然后将其转换为其他格式,如十进制。
示例代码:
```c
include
int main() {
FILE *fp = fopen("data.bin", "rb");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
int num;
fread(&num, sizeof(int), 1, fp);
fclose(fp);
printf("读取到的数字: %d\n", num);
return 0;
}
```
位操作和移位运算
可以使用位操作和移位运算符来生成和操作二进制数。
示例代码:
```c
include
void generateBinarySequence(int length) {
for (int i = 0; i < length; i++) {
int bit = (i >> (length - 1)) & 1;
printf("%d", bit);
}
printf("\n");
}
int main() {
int length = 4;
generateBinarySequence(length);
return 0;
}
```
将十进制数转换为二进制数
可以使用位运算和循环将十进制数转换为二进制数。
示例代码:
```c
include
void decimalToBinary(int decimal) {
char binary;
int i = 0;
while (decimal > 0) {
binary[i++] = (decimal % 2) + '0';
decimal >>= 1;
}
binary[i] = '\0';
printf("%s\n", binary);
}
int main() {
int decimal = 255;
decimalToBinary(decimal);
return 0;
}
```
输出二进制数
可以使用位操作和循环将整数