13个回答
展开全部
又称二进制转换
一种新处理器的流行,离不开相应软件的支持。开发新的处理器可能会因为失去相应软件的支持而影响其推广应用和市场前景;另一方面,得不到广泛应用和一定市场份额的处理器也很难得到丰富的软件支持。这种处理器和支持软件之间相互钳制的关系,既使得新处理器的设计不得不考虑兼容老处理器,也阻碍了新处理器的推出。在这种情况下,研究如何把支持老处理器的软件移植到新的处理器上,使新的处理器从诞生之初就有丰富的软件,不仅对软件重用有重大意义,更可以开阔处理器研发的思路,促进新处理器的创新。
一般有三种方法可以把老处理器上的代码移植到新处理器上[1]:
1. 在新处理器上提供专门的运行模式来执行老代码,如英特尔的安腾(Itanium)处理器专门设计了执行x86代码的硬件。
2. 把源程序重新编译到新的指令集。
3. 使用软件方法,解释或翻译应用程序。
第一种方法,显然无法利用新处理器的一些先进特性,失去了开发新处理器的意义,并且增加了新处理器的硬件复杂度,甚至还会影响原有代码的执行效率;第二种方法可以达到很好的效率,但并不总是可行,因为有些程序已经没有源代码,有些程序依赖于共享代码库,而这些共享代码以目标代码形式出现,不一定能得到源码,有些源程序语言没有编译到新指令集的编译器,此外操作系统的差异还可能使得只有修改源代码才能重新编译这些例程(比如与图形相关的代码)。
因此第三种方法,称之为二进制翻译(Binary Translation)应运而生。它是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行。它使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了硬件/软件的适用范围,有助于打破前面提到的处理器和支持软件之间互相掣肘影响创新的局面。
二进制翻译也是一种编译技术,它与传统编译的差别在于其编译处理对象不同。传统编译处理的对象是某一种高级语言,经过编译处理生成某种机器的目标代码;二进制翻译处理的对象是某种机器的二进制代码,该二进制代码是经过传统编译生成的,经过二进制翻译处理后生成另一种机器的二进制代码。按照传统编译程序前端、中端和后端的划分,我们可以理解为二进制翻译是拥有特殊前端的编译器。
转换方法:
二进制、八进制、十六进制转换为十进制----------按位权展开。
二进制转换十进制
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
例如,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
第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
--------------------------
(0110 0100)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
注:整数的转换是精确的,小数的转换可能出现无穷小数或循环小数的情况。此时需要进行舍入处理以截断,所以小数的转换可能略有偏差。箭头表示由高位到低位的趋势。
一种新处理器的流行,离不开相应软件的支持。开发新的处理器可能会因为失去相应软件的支持而影响其推广应用和市场前景;另一方面,得不到广泛应用和一定市场份额的处理器也很难得到丰富的软件支持。这种处理器和支持软件之间相互钳制的关系,既使得新处理器的设计不得不考虑兼容老处理器,也阻碍了新处理器的推出。在这种情况下,研究如何把支持老处理器的软件移植到新的处理器上,使新的处理器从诞生之初就有丰富的软件,不仅对软件重用有重大意义,更可以开阔处理器研发的思路,促进新处理器的创新。
一般有三种方法可以把老处理器上的代码移植到新处理器上[1]:
1. 在新处理器上提供专门的运行模式来执行老代码,如英特尔的安腾(Itanium)处理器专门设计了执行x86代码的硬件。
2. 把源程序重新编译到新的指令集。
3. 使用软件方法,解释或翻译应用程序。
第一种方法,显然无法利用新处理器的一些先进特性,失去了开发新处理器的意义,并且增加了新处理器的硬件复杂度,甚至还会影响原有代码的执行效率;第二种方法可以达到很好的效率,但并不总是可行,因为有些程序已经没有源代码,有些程序依赖于共享代码库,而这些共享代码以目标代码形式出现,不一定能得到源码,有些源程序语言没有编译到新指令集的编译器,此外操作系统的差异还可能使得只有修改源代码才能重新编译这些例程(比如与图形相关的代码)。
因此第三种方法,称之为二进制翻译(Binary Translation)应运而生。它是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行。它使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了硬件/软件的适用范围,有助于打破前面提到的处理器和支持软件之间互相掣肘影响创新的局面。
二进制翻译也是一种编译技术,它与传统编译的差别在于其编译处理对象不同。传统编译处理的对象是某一种高级语言,经过编译处理生成某种机器的目标代码;二进制翻译处理的对象是某种机器的二进制代码,该二进制代码是经过传统编译生成的,经过二进制翻译处理后生成另一种机器的二进制代码。按照传统编译程序前端、中端和后端的划分,我们可以理解为二进制翻译是拥有特殊前端的编译器。
转换方法:
二进制、八进制、十六进制转换为十进制----------按位权展开。
二进制转换十进制
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
例如,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
第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
--------------------------
(0110 0100)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
注:整数的转换是精确的,小数的转换可能出现无穷小数或循环小数的情况。此时需要进行舍入处理以截断,所以小数的转换可能略有偏差。箭头表示由高位到低位的趋势。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0*2的0次方+1*2的1次方+1*2的2次方+1*2的3次方+1*2的4次方+1*2的5次方+1*2的6次方+1*2的7次方=254
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WINDOWS 系统自带的计算器就可以算 是 254
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(11111110)二进制=1×2的7次方+1×2的6次方+1×2的5次方+1×2的4次方+1×2的3次方+1×2的2次方+1×2的1次方+0×2的0次方=128+64+32+16+8+4+2+0=254
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询