⑴ 编译时转化成二进制代码,需要借助一定的语法吗这语法是什么知识领域里的
机器语言01代码,有很多种的。
有很多种的 CPU,各有各的机器语言。
机器语言,都是 CPU 厂家规定的。
把 C 语言转换成机器语言,也有很多种编译软件。
这些编译软件,有的是由 CPU 厂家编写的,也有第三方软件公司编写的。
进行编译的时候,都要依据 CPU 厂家规定的机器语言。
编译后,只能在指定的 CPU 上运行。
想学机器语言,可以从《计算机系统结构》、《组成原理》入手。
网上有电子书。
⑵ c语言是如何编译成二进制
计算机专业有门课程叫做《编译原理》,详细讲述了怎么把高级语言翻译成汇编语言活着机器能看懂的二进制代码。
简单的说,C语言是通过编译器翻译成二进制代码的(就像英译汉的软件把英文翻译成汉语一样。把高级语言翻译成机器语言过程很复杂,学了编译原理就懂了)。还有编译器可以用各种语言编写,C语言可以被用C语言写的编译器来编译。
⑶ 我们所写的每条c语句,经过编译最终都转化成二进制的机器指令为什么对
C语言中的注释是不会转化为二进制的。
第一句话,注意“每条c语句”,c语句是不包含注释,所以正确。
第二句话,“每条可执行语句和非执行语句”,显然注释语句也被包含在其中,所以错误。
这种题就是玩了个文字游戏
⑷ "C源程序经编译形成的二进制代码可以直接运行"这种说法是错的.为什么需要详解...谢谢!!
还需要链接?-_-|||
⑸ 我们所写的每条C语句经过编译最终将转换成二进制的机器指令 这句话为什么对
不是每条语句都会被编译为指令的
最简单的例子,空语句就不会被编译
⑹ 高级语言 直接编译成 二进制 还是要经过什么东东
使用计算机高级语言编写的程序通过编译器翻译成二进制码文件。汇编语言也是如此。
⑺ 程序控制文件要编译吗,c语言等不是编译成二进制,控制文件看起来没
C语言是一门计算机语言,有自己一定的语法。但是,C语言并不能直接被对象所理解,需要将C语言转变成可执行代码,即二进制代码。在C语言转变成二进制可执行代码时,是以工程为单位的。而一个工程中往往会包含多个C文件。因此,需要将每个C文件都编译成二进制代码。此时,每个C文件所对应的二进制代码是独立的。由于工程是一个系统,所以需要将所有的C文件二进制代码链接到一起,形成一个工程的可执行文件。
综上,编译和链接就是指的将C文件转变成二进制代码,并将各个独立的C文件二进制代码链接到一起,形成一个可执行文件的过程。
⑻ 求问大神 既然硬盘上储存程序代码已经是二进制的,为什么不能直接执行,还需要再编译一下呢
我的理解是:计算机能够执行的是机器指令。程序本身虽然是以二进制文件的形式存储在磁盘中,但是这里存储的只是程序中字面量转换成二进制的形式存储。所以需要通过程序对应的编译器将其编译成对应的机器指令文件。而执行就是执行机器指令文件了。
#就拿java语言来说:
源文件是以**.java的文件形式存储在磁盘中的。但是这样的文件相当于只是将其中的文本转换成了二进制。计算机根本不知道该如何执行。
通过Java的编译器将其转换成**.class文件后,class文件虽然也是二进制存储,但是有自己的结构:魔数,副版本号,主版本号,常量池计数器,常量池,访问标志位,类索引,父类索引等等。但是这个东西计算机不能直接执行的,需要通过Java虚拟机去执行。而Java虚拟机相当于是模拟计算机,也有个程序计数器啥的。我个人认为应该是将.class文件中的字节码通过jvm中的执行引擎转换成对应的虚拟机指令。然后才能执行。而在真正执行的时候虚拟机中对应的虚拟机指令也是要转换成对应的机器指令才能执行
⑼ 既然程序代码已经是二进制的,为什么不能直接执行,还需要再编译一下呢
程序代码本身是ASCII文本形式的,所以要编译成二进制的exe文件
⑽ 为什么说,用c语言写的程序比汇编语言写的程序执行效率上要低,难道两者编译成的二进制代码有很大不同
汇编可以直接操作硬件,而C语言则对这些底层操作进行了一定程度的封装,而封装就意味着执行过程复杂度的增加。所以说,虽然二者最后实现的效果是一样的,但后者的执行过程要比前者复杂,编译成的二进制代码也就有所不同。