二进制代码
wish8088 · 2010-03-13 11:11 · 45528 次点击
data/attachment/portal/201111/06/143733lvq77hh7zch0zydv.gif二进制代码
二进制就是当到2后就进一位。比如0+1=1,1+1=10,10+1=11,11+1=100……特征是只有0和1
一串代码只有0和1构成就是二进制代码
十六进制和二进制一样,当加到16的时候才进位。
0+1=1,1+1=2,2+1=3,3+1=4,4+1=5,5+1=6,6+1=7,7+1=8,8+1=9,9+1=A,A+1=B,B+1=C,C+1=D,D+1=E,E+1=F,F+1=10……
二进制和十六进制的换算很简单,先换算成十进制,从低到高为分别乘以2^0,2^1,2^2,2^3……(^表示乘方)比如100010就是2^1+2^6=2+64=66,然后再换算成十六进制就是22。
二进制通俗点说是逢二进一。是100101010111000,这种样式的,里面只有0和1;十六进制就是逢16进1;由0、1、2、3、4、……、9、A、B、C、D、E、F分别代表0~15。到十六就进1,如(16)十进制表示为16进制的(10);将二进制从低位开始,4位化一组就可以对应为十六进制了。
目录
二进制转换
数制说明
进数制间转换
二进制转换
data/attachment/portal/201111/06/1437346136i6y71inn63za.gif二进制代码
又称二进制转换
一种新处理器的流行,离不开相应软件的支持。开发新的处理器可能会因为失去相应软件的支持而影响其推广应用和市场前景;另一方面,得不到广泛应用和一定市场份额的处理器也很难得到丰富的软件支持。这种处理器和支持软件之间相互钳制的关系,既使得新处理器的设计不得不考虑兼容老处理器,也阻碍了新处理器的推出。在这种情况下,研究如何把支持老处理器的软件移植到新的处理器上,使新的处理器从诞生之初就有丰富的软件,不仅对软件重用有重大意义,更可以开阔处理器研发的思路,促进新处理器的创新。
一般有三种方法可以把老处理器上的代码移植到新处理器上:
1.在新处理器上提供专门的运行模式来执行老代码,如英特尔的安腾(Itanium)处理器专门设计了执行x86代码的硬件。
2.把源程序重新编译到新的指令集。
3.使用软件方法,解释或翻译应用程序。
第一种方法,显然无法利用新处理器的一些先进特性,失去了开发新处理器的意义,并且增加了新处理器的硬件复杂度,甚至还会影响原有代码的执行效率;第二种方法可以达到很好的效率,但并不总是可行,因为有些程序已经没有源代码,有些程序依赖于共享代码库,而这些共享代码以目标代码形式出现,不一定能得到源码,有些源程序语言没有编译到新指令集的编译器,此外操作系统的差异还可能使得只有修改源代码才能重新编译这些例程(比如与图形相关的代码)。
因此第三种方法,称之为二进制翻译(BinaryTranslation)应运而生。它是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行。它使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了硬件/软件的适用范围,有助于打破前面提到的处理器和支持软件之间互相掣肘影响创新的局面。
二进制翻译也是一种编译技术,它与传统编译的差别在于其编译处理对象不同。传统编译处理的对象是某一种高级语言,经过编译处理生成某种机器的目标代码;二进制翻译处理的对象是某种机器的二进制代码,该二进制代码是经过传统编译生成的,经过二进制翻译处理后生成另一种机器的二进制代码。按照传统编译程序前端、中端和后端的划分,我们可以理解为二进制翻译是拥有特殊前端的编译器。
数制说明
数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制和十六进制。
1.十进制数
人们通常使用的是十进制。它的特点有两个:有0,1,2….9十个基本字符组成,十进制数运算是按“逢十进一”的规则进行的.
在计算机中,除了十进制数外,经常使用的数制还有二进制数和十六进制数.在运算中它们分别遵循的是逢二进一和逢十六进一的法则.
2.二进制数
3.二进制数有两个特点:它由两个基本字符0,1组成,二进制数运算规律是逢二进一。
为区别于其它进制数,二进制数的书写通常在数的右下方注上基数2,或加后面加B表示。
例如:二进制数10110011可以写成(10110011)2,或写成10110011B,对于十进制数可以不加注.计算机中的数据均采用二进制数表示,这是因为二进制数具有以下特点:
1)二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有,无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高,低,晶体管的导通和截止等。
2)二进制数运算简单,大大简化了计算中运算部件的结构。
二进制数的加法和乘法运算如下:
0+0=00+1=1+0=11+1=10
0×0=00×1=1×0=01×1=1
由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数.
3.十六进制数
十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数0~15),十六进制数运算规律是逢十六进一,??鹩谄渌??剖?????剖?氖樾赐ǔT谑?挠蚁路阶⑸匣??保叮?蚣雍竺婕樱缺硎尽?/SPAN>
例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。
4.数的位权概念
5.一个十进制数110,其中百位上的1表示1个102,既100,十位的1表示1个101,即10,个位的0表示0个100,即0。
一个二进制数110,其中高位的1表示1个22,即4,低位的1表示1个21,即2,最低位的0表示0个20,即0。
一个十六进制数110,其中高位的1表示1个162,即256,低位的1表示1个161,即16,最低位的0表示0个160,即0。
可见,在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权。
十进制数的位权是以10为底的幂,二进制数的位权是以2为底的幂,十六进制数的位权是以16为底的幂。数位由高向低,以降幂的方式排列。
进数制间转换
data/attachment/portal/201111/06/143734r4terx51jom05x1g.jpg二进制代码
1.二进制数、十六进制数转换为十进制数(按权求和)
二进制数、十六进制数转换为十进制数的规律是相同的。把二进制数(或十六进制数)按位权形式展开多项式和的形式,求其最后的和,就是其对应的十进制数——简称“按权求和”.
例如:把(1001.01)2转换为十进制数。
解:(1001.01)2
=1×23+0×22+0×21+1×20+0×2-1+1×2-2
=8+0+0+1+0.5+0.25
=9.75
把(38A.11)16转换为十进制数
解:(38A.11)16
=3×162+8×16+10×160+1×16-1+1×16-2
=768+128+10+0.0625+0.0039
=906.0664
2.十进制数转换为二进制数,十六进制数(除2/16取余法)
整数转换.一个十进制整数转换为二进制整数通常采用除二取余法,即用2连续除十进制数,直到商为0,逆序排列余数即可得到――简称除二取余法.
例:将25转换为二进制数
解:25÷2=12余数1
12÷2=6余数0
6÷2=3余数0
3÷2=1余数1
1÷2=0余数1
所以25=(11001)2
同理,把十进制数转换为十六进制数时,将基数2转换成16就可以了.
例:将25转换为十六进制数
解:25÷16=1余数9
1÷16=0余数1
所以25=(19)16
3.二进制数与十六进制数之间的转换
由于4位二进制数恰好有16个组合状态,即1位十六进制数与4位二进制数是一一对应的.所以,十六进制数与二进制数的转换是十分简单的.
(1)十六进制数转换成二进制数,只要将每一位十六进制数用对应的4位二进制数替代即可――简称位分四位.
例:将(4AF8B)16转换为二进制数.
解:4AF8B
01001010111110001011
所以(4AF8B)16=(1001010111110001011)2
(2)二进制数转换为十六进制数,分别向左,向右每四位一组,依次写出每组4位二进制数所对应的十六进制数――简称四位合一位.
例:将二进制数(111010110)2转换为十六进制数.
解:000111010110
1D6
所以(111010110)2=1D6H
转换时注意最后一组不足4位时必须加0补齐4位