二进制、十进制和十六进制及其相互转换的公式
- 格式:doc
- 大小:43.50 KB
- 文档页数:3
计算机内部是以二进制形式表示数据和进行运算的;计算机内的地址等信号常用十六进制来表示,而人们日常又习惯用十进制来表示数据。这样要表示一个数据就要选择一个适当的数字符号来规定其组合规律,也就是要确定所选用的进位计数制。各种进位制都有一个基本特征数,称为进位制的“基数”。基数表示了进位制所具有的数字符号的个数及进位的规律。下面就以常用的十进制、二进制、八进制和十六进制为例,分别进行叙述。
一.常用的三种计数制
1.十进制(Decimal)
十进制的基数是10,它有10个不同的数字符号,即0、1、2、3、…、9。它的计数规律是“逢十进一”或“借一当十”。处在不同位置的数字符号具有不同的意义,或者说有着不同的“权”。所谓的“权”就是每一位对其基数具有不同的倍数。例如,一个十进制数为
123.45=1×102十2×101十3×100十4×10-1十5×10-2
等号左边为并列表示法.等号右边为多项式表示法,显然这两种表示法表示的数是等价的。
在右边多项式表示法中,1、2、3、4、5被称为系数项,而102、101、100、10-1、10-2等被称为该位的“权”。
一般来说,任何一个十进制数”都可以采用并列表不法表不如下:
N10=dn-1d n-2…d1d 0. d-1d-2…d-m
其中,下标n表示整数部分的位数,下标m表示小数部分的位数,d是0~9中的某一个数,即di∈(0,1,…,9)。同样,任意一个十进制数N都可以用多项式表示法表示如下:
N10=dn-1×10n-1十…十d1×101十d 0×100十d-1×10-1十…十
d-m×10-m
其中,m、n为正整数,di表示第i位的系数,10i称为该位的权。所以某一位数的大小是由各系数项和其权值的乘积所决定的。
2.二进制(Binary)
二进制的基数是2,它只有两个数字符号,即0和1。计算规律是“逢二进一”或“借一当二”。例如:(101.01)2=1×23十1×22十0×21十1×20十0×2-1十1×2-2
任何一个二进制数N都可以用其多项式来表示:
N2=dn-1×2n-1十dn-2×2n-2十…十d1×21十d 0×20十d-1×2-1十d-2×2-2十…十d-m×2-m
式中任何一位数值的大小都可以用该位的系数项di和权值2i的积来确定。
3.十六进制(Hexadecimal)
十六进制的基数为16,它有16个数字符号、即0~9、A~F。其中A、B、C、D、E、F分别代表十进制数的10、11、12、13、14、15。各位之间“逢十六进一”或者“借一当十六”。各位的权值为16i。例如:(2C7.1F)16=2×162十12×161十7×160十1×16-1十15×16-2
二.3种计数制之间的相互转换
对于同一个数,可以采用不同的计数制来表示,其形式也不同。如:
(11)10=(1011)2=(B)16
1.R进制转换成十进制的方法
具体的方法是先将其并列形式的数写成其多项式表示形式,然后,经计算后就可得到其十进制的结果。这种方法披称为按权展开法。对于一个任意的R进制数N都可以写成如下形式:
N=dn-1 dn-2…d1 d0d -1d-2…d-m
=dn-1×Rn-1十…十d1×R1十d 0×R0十d-1×R-1十…十d-m×R-m
其中,R为进位基数,Ri是对应位的权值,di为系数项,特此式求和计算之后,即可以完成R进制数对十进制数的转换。
例如,写出(1101.01)2、(10D)16的十进制数。
(1101.01)2=1×23十1×22十0×21十1×20十0×2-1十0×2-2,
=8十4十1十0.25
=13.25
(10D) 16=1×162十0×161十13×160=256+13=269
2.十进制转换成二进触方法
十进制数转换成二进制数一般分为两个步骤,即整数部分的转换和小数部分的转换。
(1)整数部分的转换
除2取余法:这种方法是由于D10=N2=dn-1×2n-1十dn-2×2n-2十…d1×21十d0×20,所以具体方法是把给定的十进制整数除以2,取其余数作为二进制整数最低位的系数do,然后继续将整数部分除以2,所得余数作为二进制整数次低位的系数d1,一直重复下去,最后可以得到二进制整数部分。
例如,将(327)10转换成二进制数。
327余数各项系数
除以2=163…1d0
……81…1d1
……40…1d2
……20…0d3
……10…0d4
……5…0d5
……2…1d6
……1…0d7
……0…1d8
所以,(327)10=d8 d7 d6 d5 d4 d3 d2d1 d0=(101000111)2。
此方法可扩展为陈R取余法。如将R设为16,则可将十进制整数转变为十六进制整数。
减权定位法:因为D10=N2=dn-1×2n-1十dn-2×2n-2十…d1×21十d0×20,所以二进制多项式中的每一项都有自己的权值。若该项系数值为d i=0,则该项值为0,否则d i应为1。根据这一对应关系,可提出减权定位的转换方法:将十进制数依次从二进制高位权值进行比较:若够减则对应位d i=1,减去该位权值后再往下比较;若不够减则对应值d i=0,越过该位与低一位的权值比较,如此进行直到余数为0为止。
例如,将(327)10转换成二进制数。因为512(29)>327>256(28),所以从权值256对应值开始比较。
减权比较di位权
327-256=71 1 28
71<128027
71-64=7126
7<32025
7<16024
7<8023
7-4=3122
3-2=1121
1-1=0120
所以,(327)10=(101000111)2。
(2)小数部分的转换
转换的方法是采用乘2取整数表示法。由于D10=d-1×2-1十d-2×2-2十…d-m×2-m,所以具体方法是把给定的十进制小数乘以2,取其整数部分作为二进制小数的小数点后的第一位系数;然后再将乘积的小数部分继续乘以2,取所得积的整数部分作为小数后的第二位系数;依次重复做下去,就可以得到二进制小数部分。
例如,将(0.8125) 10。转换成二进制小数。