二进制文件和.exe文件有什么区别?[关闭]


13

谁能区分二进制文件和.exe文件之间的区别?


“二进制文件”需要进一步的限定/上下文,因为它具有多种含义。
Ignacio Vazquez-Abrams

1
这个问题的目的是澄清二进制文件可执行文件,还是扩展名.bin.exe 文件扩展名之间的区别?
l0b0

1
这个问题很好。他们在谈论二字这个词的口语用法。如果二进制这个词不明确,那么答案应该更全面。查看已接受的答案。
user391339 2014年

Answers:


29

二进制文件几乎是所有不是纯文本的文件,它包含的数据编码方式与文本编码(ASCII,UTF-8或任何其他文本编码,例如ISO-8859-2)不同。文本文件可以是纯文本文档,例如故事或信件,也可以是配置文件或数据文件-无论如何,如果使用纯文本编辑器打开它,则内容是可读的。二进制文件是不是文本文件的任何文件(也不是“特殊”文件,例如fifo,目录,设备等)

那可能是mp3音乐。那可能是jpg图片。这可能是压缩的存档,甚至是文字处理程序文档-出于实用目的,它是文本,但它被编码(写在磁盘上)为二进制。您需要一个特定的程序才能打开它,才能理解它-对于文本编辑器,内容是一团糟。

现在,在Linux中,当提到“二进制可执行文件”-程序时,您经常会听到“二进制”。这是因为尽管大多数程序(用高级语言编写)的源是纯文本,但是编译的可执行文件是二进制的。由于存在许多编译格式(a.out,ELF,字节码...),因此通常将其称为二进制文件,而不是停留在它们具有的内部结构上-从用户的角度来看,它们几乎是相同的。

现在,.exe只是这些编译格式中的另一种-MS Windows常用的一种。它只是一种二进制文件,可以根据Windows API进行编译和链接。


2

批处理文件实际上只是文本文件或可以由命令行处理器执行的小脚本-“ cmd.exe”,它们在DOS环境中广泛用于自动化常见任务。

EXE文件与BAT文件不同,因为它们包含可执行的二进制数据而不是纯文本命令。它们以可移植可执行(PE)格式存储。EXE文件格式包括各种标题和部分,这些标题和部分告诉Windows如何运行程序。EXE文件的某些部分可能包含程序代码,而其他部分可能包含资源数据。


0

通常可以说没有什么区别:在MS Windows OS中,可执行文件具有名称*.exe,但在* nix类的OS中,可执行文件可以随意命名,称为“二进制文件”。

但这并不意味着每个二进制文件都是可执行的(例如*.exe):二进制文件可能只是一种信息存储。例如,数据库文件(例如MySQL数据库的MyISAM或InnoDB文件)也是二进制文件(但不是可执行文件)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.