【发布时间】:2020-09-25 22:45:14
【问题描述】:
我有一个保存在可执行文件中的 C 程序(.exe - 我听说这也称为“二进制”文件)。 当我在文本编辑器中打开它时,它不是二进制的,而是其他一些古怪的字符组合。为什么是这样?文件实际显示的执行阶段是什么?为什么这个中间文本存在于 C 代码和实际的原始二进制文件之间?
【问题讨论】:
-
可执行文件包含操作码,当您在文本编辑器中查看它们时,编辑器会逐字节读取它们可能无法识别为易读字符。
-
标准ascii字符用二进制数表示。每个字符“a”、“b”都有一个代码。如果您在文本编辑器中打开“原始二进制”文件,它会显示每个二进制代码对应的字符。每个 CPU 指令也与相应的二进制代码相关联。当文件被复制到内存中时,处理器会为每个二进制代码执行指令。
-
您可以用多种方式解释术语“二进制”。这不仅仅意味着一件事,这可能会令人困惑。有时,您应该将“二进制”解释为“非文本”。有时“二进制”表示用 1 和 0 表示的东西。在 Linux 系统上,“二进制”有时表示“可执行文件或库”。抱歉,我们的语言令人困惑。
标签: c binary executable machine-code