当前位置:首页 > 百科

二进制转换

来自着计算机的普及,二进制开始频繁应用于日常生活中。其中包括二进制数360百科据的运算甚至关于机器助注江所度制语言的转换。但人们在生活中更熟悉十进制,如何将二进制进行术么便通衣景转换变成十进制数,或者与之息息相关的八进尼药古鲁营盟怎则制数和十六进制数就是本词条讨论的话极操为题。

  • 中文名 二进制转换
  • 学科 计算机
  • 特点 应用于生活
  • 性质 名词

基本信息

简介

  一种新处理器的流行,离不开相应软件的支持。开发新的处理器可能会因为失去相应软件的支持而影响其推广应用和市场前景;另一方面,得不到广泛应用和一定市场份额的处理器也很难得到丰富的软件支持。这种处理器和支持软件之间相互钳制的关系,既使得新处理器的设计不得不考虑兼背班容老处理器,也阻碍了新处理器的推出。在这种情况下,研究如何把支持老处理器的软件移植到新的处理器上,使新的处理器从诞生之初就有丰富的软件,不仅对软件重用有重大意义,更可以开阔处理器研发的思路,促进新处来自理器的创新。

常见方法

  一般有三种方法可以把老处理器上的代码移植到新处理器上级晚挥味属线染阿士露[1]:

  1. 在新处360百科理器上提供专门的运挥气分田顾行模式来执行老代码,如英特尔的安腾(Itanium)处理器专门设计了执行x86代码的硬件。

  2. 把源程序重新编译到新的指令集。

 院含 3. 使用软件方法,解释比配吧古照题并或翻译应用程序。

  第一种方法,显然无法利用新处理器的一些先进特性,失去了开发新处理器的意义,并且增加了新处理器的硬件复杂度,甚至还会影响原有代码的执行效率;第二种方法香搞杨鲜一露可以达到很好的效率,但并不总是可行,因为有些程序已经没有源代码,有些程于细第树乎众沉念什序依赖于共享代码库,而这些共享代码以目标代码形式出现,不一定能得到源码,有些源程序语言没有编译到新指令集的编译器,此外操作系统的差异还可即硫帝草跳药影永核赶能使得只有修改源代码才能重新编译这些例程(比如与图形相关的代码)。

  因此第三种方法,称之为二进制翻译(Binary Translation)应运而生。它是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行。它使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了硬件/软件的适此状用范围,有助于打破煤地前面提到的处理器和支持软件之间互相掣肘影响创新的局面。

  二进制翻译也是一种编译技术,它与传统编译的差别在于其编译处理对象不同。传统编译处理的对象是某一种高级语言,经信维乡过孩过编译处理生成某种机器的目标代码;二进制翻伤井看留操宜经粒译处理的对象是某种机器的二进制代码,该二移李式载密方清进制代码是经过传统编译生成的,长失并事获经过二进制翻译处理后生成另一种机器的二进制代码。按照传统编译程序前端、中端和后端的划分,我们可以理解为二进制翻译是拥有特殊前端的编译器。

四则运算

  加法:0+0=0,0+1=1,1+0=1,1+1=10

  减法:0-0=0,1-0=1,1-1=证清住0,0-1=1

  乘法:六肥兴天配逐0×0=0,0×1=0,1×0=0,1×1=1

  除法:0÷1=0,1÷1=1, 1÷0无意义,0÷0无意义

相关转换

二进制转换

  二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…

  例如,设有一个二进制数:0110 0皇沉鱼100(由后至前分别为第0位,第1位……第7位),转换为10进制为:

  下面是竖式:

  01100 100 换算成 十进制

  第0位 0 x 2^题妒怎武础0 = 0

  第1位 0 x 2^1 = 0

  第2位 1 x 2^2 = 4

  第3位 0 x 2^3 = 0

  第4位 0 x 2^4 = 0

  第5位 1 x 2^5 = 32

  第6位 1 x 2^6 = 64

  第7位 0 x 2^7 = 0

  --------------------------

  (01100 100)B=(100)D

  注:数字后面相应的字母表示不同的进位制。B表示二进制,O表示八进制,D表示十进制,H表示十六进制。

八进制转换

  八进制就是逢8进1。

  八进制数采用 0~7这八数来表达一个数。

  八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……

  所以,设有一个八进制数:1507,转换为十进制为:

  用竖式表示:

  1507换算成十进制。

  第0位 7 x 8^0 = 7

  第1位 0 x 8^1 = 0

  第2位 5 x 8^2 = 320

  第3位 1 x 8^3 = 512

  --------------------------

  (1507)O=(839)D

  同样,我们也可以用横式直接计算:

  7 X 8^0 + 0 X 8^1 + 5 X 8^2 + 1 x 8^3 = (839)D

  结果是,八进制数1507 转换成十进制数为 839

  十六进制转换为十进制

  (ABC.8C)H=10x16^2+11x16^1+12x16^0+8x16^-1+12x16^-2

  =2560+176+12+0.5+0.046875

  =(2748.546875)D

十进制转换

  1.整数部分除R取余

  例:(125)D=(1111101)B

  注:余数中最后得到的余数为最高位,最先得到的余数为最低位,从高到低依次排列。

  2.小数部分乘R取整

  例:(0.25)D

  0.25

  X 2

  _______________

  0.50 (整数部分0为高位)

  X 2 ↓

  _______________ ↓

  1.00 (整数部分1为低位)

  (0.25)D=(0.01)B

  注:整数的转换是精确的,小数的转换可能出现无穷小数或循环小数的情况。此时需要进行舍入处理以截断,所以小数的转换可能略有偏差。箭头表示由高位到低位的趋势。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:金榜提名
下一篇:世界狂犬病日

相关文章