我正在使用网站learncpp.com学习 C++ 。第 0.5 章指出编译器的目的是将人类可读的源代码转换为机器可读的机器代码,由 1 和 0 组成。
\n我编写了一个简短的 hello-world 程序并用于g++ hello-world.cpp
编译它(我使用的是 macOS)。结果是a.out
。它确实打印“Hello World”很好,但是,当我尝试在 vim/less/Atom/... 中查看时a.out
,我没有看到 1 和 0',而是看到很多这样的内容:
H\xef\xbf\xbdE\xef\xbf\xbdH\xef\xbf\xbd\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdH\xef\xbf\xbdE\xef\xbf\xbdH\xef\xbf\xbd}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdH\xef\xbf\xbd\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdH9\xef\xbf\xbd\xef\xbf\xbd\n
Run Code Online (Sandbox Code Playgroud)\n为什么内容a.out
不只是机器代码所期望的 1 和 0?