并非每个软件开发平台都能产生直接在处理器上运行的可执行机器代码。那些不产生可执行机器代码的平台会产生某种程序的中间表示,即字节码。这个字节码然后被用户机器上的一个特殊程序读取,在本地处理器上执行该程序。这个程序被称为虚拟机。二进制代码与字节码完全不同,是可以直接被机器理解的。然而,在过去几年中,字节码和二进制代码的区别已经略显模糊。

字节码是什么?

字节码是介于源代码和二进制代码之间的一种中间代码,它被编译为在虚拟机(VM)而不是中央处理器(CPU)上运行。它本质上是一种低级代码,就像硬件处理器的汇编语言(如IA-32汇编语言)。关于虚拟机的有趣之处在于,它们几乎都有自己的字节码格式。区别在于这种二进制代码是如何执行的。
字节码是一个高度优化的指令集,旨在由软件解释器高效执行。现实世界中没有硬件CPU来执行这些指令。字节码通常以单文件包的形式发布,可能需要解压以获得各个字节码文件,以便反编译成源代码。字节码是紧凑的数字代码、常数、十六进制和数字地址。

二进制代码是什么?

二进制代码代表计算机中的一个字母、数字或其他字符。它基本上是一个编码系统,大多数计算机和计算机化设备使用它来发送、接收和存储信息。二进制简单地代表了一种只使用两个值的编号方案。它代表计算机处理器指令或任何其他只使用这两个值的数据。它是最简单的数据形式,完全由一串连续的0和1组成的二进制数字系统表示。

机器码使用二进制数字的集合来创建指令。二进制代码也被用来表示流经几乎所有复杂的软件和硬件系统的最小数据量,这些系统被用来处理当今大多数的数据资源和资产。事实上,二进制代码和数据的性质在信息技术的基本世界中起着重要作用。大多数现代计算机对指令和数据使用二进制编码。

比特码和二进制代码的区别

基础知识
与传统的二进制程序不同,其中每条指令都是由硬件解码和执行的,虚拟机对程序的二进制代码进行自己的解码。二进制代码,顾名思义,是二进制格式(0和1),与字节码完全不同,字节码被认为是中间层次的代码,被编译为在虚拟机而不是CPU上运行。它已经从源代码编译成了为软件解释器设计的低级代码。

格式
字节码是紧凑的数字代码、常量、十六进制和数字地址。它是源代码和二进制代码之间的中间代码,被编译成在虚拟机(VM)上运行,而不是在中央处理单元(CPU)上运行。二进制代码是最简单的数据形式,完全由一串连续的0和1的数字组成的二进制系统来表示。二进制代码被认为是低级别代码。

平台依赖性
二进制代码是与平台无关的,因为它被编译为在虚拟机上运行,有虚拟机的系统可以不受平台的影响而执行。相反,二进制代码是依赖于平台的,因为一个平台的目标代码不能在同一个操作系统上运行。不同的虚拟机是为不同的操作系统设计的,而字节码则能够在不同的操作系统上运行。只有在解释器可用的情况下,字节码才能运行。

总结

字节码是一个高度优化的指令集,旨在由软件解释器高效执行。现实世界中没有硬件CPU执行这些指令。二进制代码代表计算机处理器指令或任何其他只使用这两个值的数据。机器码使用二进制数字的集合来创建指令。机器码由CPU指令集的指令组成,指令集是计算机的内置指令集。一个由机器码组成的编译程序被称为二进制。

字节码的例子有哪些?
一个流行的字节码例子是Java字节码,它是由Java源代码编译而成,可以在Java虚拟机(JVM)上运行。

字节码和目标代码有什么区别?
字节码是虚拟机(VM)的人工机器代码,如Java虚拟机(JVM),而目标代码是由编译器或汇编器产生的代码。

为什么叫字节码?
字节码 “这个名字来自于指令集,这些指令集有一个字节的操作码,后面是可选参数。

Java字节码是什么,它与机器码有什么不同?
Java字节码是Java虚拟机(JVM)的指令集。它是介于源代码和虚拟机执行的机器代码之间的中间级代码。另一方面,机器代码是一种低级代码,可以直接被计算机理解。

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:字节码和二进制代码的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-bytecode-vs-binary-code.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。