为什么二进制文件不是文本文件,所有文本文件都是二进制文件?

Pra*_*bha 4 c

将文件分类为二进制文件或文本文件的决定因素是什么?

例如:考虑下面的 C 程序

  1. 二进制模式创建文件
  2. 将两个整数写入文件“binary.txt”。

注意:在运行程序之前确保 binary.txt 不存在。

观察:

文件创建“binary.txt”,内容为 TEXTFILE

#include <stdio.h>

int main()
{
   int arr[2] = {1415071060,1162627398};
   FILE *fp = fopen("binary.txt", "wb");

   if(fp == NULL)
   {
       printf("Error opening file\n");
       exit(1);
   }
   fwrite(arr, sizeof(arr), 1, fp);
   fclose(fp);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是只有创建者知道它是以二进制模式创建的,这应该称为二进制文件。

任何打开文件“binary.txt”的人都会认为它是文本文件。

一般用户应该怎么称呼这个文件 -二进制文件还是文本文件?

R S*_*ahu 7

@JohnBollinger 在评论中总结得最好。

文本与二进制不是现代操作系统的基本文件特征,而是文件解释方式之间的区别。

假设一个文件包含四个字节,字节的十六进制值如下:

0x41 0x42 0x43 0x44
Run Code Online (Sandbox Code Playgroud)

如果在使用 ASCII 编码的系统中将这些字节解释为字符,您将获得字符ABCD.

如果您将这些字节视为 4 字节整数,您将获得0x41424344大端系统中的值(十进制 1094861636)和0x44434241小端系统中的值(十进制1145258561)。

就计算机而言,它都是二进制的。至于他们的意思,这完全是一个解释的问题。