《二进制、十进制和十六进制及其相互转换的公式》由会员分享,可在线阅读,更多相关《二进制、十进制和十六进制及其相互转换的公式(6页珍藏版)》请在金锄头文库上搜索。
1、计算机内部是以二进制形式表示数据和进行运算的;计算机内的地址等信号常 用十六进制来表示,而人们日常又习惯用十进制来表示数据。这样要表示一个 数据就要选择一个适当的数字符号来规定其组合规律,也就是要确定所选用的 进位计数制。各种进位制都有一个基本特征数,称为进位制的“基数”。基数 表示了进位制所具有的数字符号的个数及进位的规律。下面就以常用的十进制、 二进制、八进制和十六进制为例,分别进行叙述。一常用的三种计数制一常用的三种计数制1.1.十进制十进制(Decimal)(Decimal)十进制的基数是 10,它有 10 个不同的数字符号,即 0、1、2、3、9。它的 计数规律是“逢十进一”或“借一
2、当十”。处在不同位置的数字符号具有不同 的意义,或者说有着不同的“权”。所谓的“权”就是每一位对其基数具有不 同的倍数。例如,一个十进制数为123451102 十 2101 十 3100 十 410-1 十 510-2等号左边为并列表示法等号右边为多项式表示法,显然这两种表示法表示的 数是等价的。在右边多项式表示法中,1、2、3、4、5 被称为系数项,而 102、101、100、10-1、10-2 等被称为该位的“权”。一般来说,任何一个十进制数”都可以采用并列表不法表不如下:N10dn-1d n-2d1d 0. d-1d-2d-m其中,下标 n 表示整数部分的位数,下标 m 表示小数部分的位
3、数,d 是 09 中 的某一个数,即 di(0,1,9)。同样,任意一个十进制数 N 都可以用多 项式表示法表示如下:N10dn-110n-1 十十 d1101 十 d 0100 十 d-110-1 十十 d- m10- m 其中,m、n 为正整数,di 表示第 i 位的系数,10i 称为该位的权。所以某一位 数的大小是由各系数项和其权值的乘积所决定的。2.2.二进制二进制(Binary)(Binary)二进制的基数是 2,它只有两个数字符号,即 0 和 1。计算规律是“逢二进 一”或“借一当二”。例如:(10101)2123 十 12十 02十 12十 02十 12任何一个二进制数都可以用其
4、多项式来表示: dn-12n-1 十 dn-22n-2 十十 d121 十 d 020 十 d-12-1 十 d- 22-2 十十 d-m2-m式中任何一位数值的大小都可以用该位的系数项 di 和权值 2i 的积来确定。3.3.十六进制十六进制(Hexadecimal)(Hexadecimal)十六进制的基数为 16,它有 16 个数字符号、即 09、AF。其中 A、B、C、D、E、F 分别代表十进制数的 10、11、12、13、14、15。各位之间 “逢十六进一”或者“借一当十六”。各位的权值为 16i。例如:(2C71F)162162 十 12161 十 7160 十16-1 十 1516
5、2二二3 3 种计数制之间的相互转换种计数制之间的相互转换对于同一个数,可以采用不同的计数制来表示,其形式也不同。如:(11)10(1011)2(B)161 1 R R 进制转换成十进制的方法进制转换成十进制的方法具体的方法是先将其并列形式的数写成其多项式表示形式,然后,经计算后就 可得到其十进制的结果。这种方法披称为按权展开法。对于一个任意的 R 进制 数 N 都可以写成如下形式:Ndn-1 dn-2d1 d0d -1d-2d-mdn-1Rn-1 十十 d1R1 十 d 0R0 十 d-1R-1 十十 d-mR-m其中,R 为进位基数,Ri 是对应位的权值,di 为系数项,特此式求和计算之后
6、, 即可以完成 R 进制数对十进制数的转换。例如,写出(110101)2、(10D)16 的十进制数。(110101)2123 十 122 十 021 十 120 十 02-1 十 02-2,8 十 4 十 1 十 0251325(10D) 161162 十 0161 十 13160256132692 2 十进制转换成二进触方法十进制转换成二进触方法十进制数转换成二进制数一般分为两个步骤,即整数部分的转换和小数部分的 转换。(1)整数部分的转换除除 2 2 取余法取余法:这种方法是由于 D10N2dn-12n-1 十 dn-22n-2 十d121 十 d020,所以具体方法是把给定的十进制整数
7、除以 2,取其余数作为二进制 整数最低位的系数 do,然后继续将整数部分除以 2,所得余数作为二进制整数 次低位的系数 d1,一直重复下去,最后可以得到二进制整数部分。例如,将(327)10 转换成二进制数。327 余数 各项系数除以 2 163 1 d0 81 1 d1 40 1 d2 20 0 d3 10 0 d4 5 0 d5 2 1 d6 1 0 d7 0 1 d8所以,(327)10d8 d7 d6 d5 d4 d3 d2d1 d0(101000111)2。此方法可扩展为陈 R 取余法。如将 R 设为 16,则可将十进制整数转变为十六进 制整数。减权定位法减权定位法:因为 D10N2
8、dn-12n-1 十 dn-22n-2 十d121 十 d020,所以二进制多项式中的每一项都有自己的权值。若该项系数值为 d i0,则该项值为 0,否则 d i 应为 1。根据这一对应关系,可提出减权定位的 转换方法:将十进制数依次从二进制高位权值进行比较:若够减则对应位 d i1,减去该位权值后再往下比较;若不够减则对应值 d i0,越过该位与低 一位的权值比较,如此进行直到余数为 0 为止。例如,将(327)10 转换成二进制数。因为 512(29)327256(28),所以从权 值 256 对应值开始比较。减权比较 di 位权327-256=71 1 2871128 0 2771-64
9、=7 1 26732 0 25716 0 2478 0 237-4=3 1 223-2=1 1 211-1=0 1 20所以,(327)10(101000111)2。(2)小数部分的转换转换的方法是采用乘 2 取整数表示法。由于 D10d-12-1 十 d-22-2 十dm2-m,所以具体方法是把给定的十进制小数乘以 2,取其整数部分作 为二进制小数的小数点后的第一位系数;然后再将乘积的小数部分继续乘以 2,取所得积的整数部分作为小数后的第二位系数;依次重复做下去,就可以得 到二进制小数部分。例如,将(08125) 10。转换成二进制小数。整数部分 系数部分20.8125=1.625 1 d-
10、1=120.625=1.25 1 d-2=120.25=0.5 0 d-3=020.5=1.0 1 d-4=1所以,(08125)10d0 d-1 d-2 d-3 d-4 (0.1101)2。在计算中可以按照所需的小数点位数,取其结果位近似值。此方法可以扩展为乘 R 取整法如将 R 变为 16,则可将十进制小数部分直接变 为十六进制小数。3 3二进制与十六进制的转换二进制与十六进制的转换(1)二进制转换成十六进制4 位二进制数的所有组合可表示十六进制数的 16 个代码,它们之间的对应 关系如下:二进制: 0000 0001 0010 0011 0100 0101 0110 0111十六进制:
11、0 1 2 3 4 5 6 7二进制: 1000 1001 1010 1011 1100 1101 1110 1111十六进制: 8 9 A B C D E F进制转换的具体方法:从小数点开始,分别向左、向右,每 4 位二进制数 为一组用十六进制数值来书写。若小数点左侧位数不是 4 的倍数,则最左侧用 0 补充;若小数点右侧位数不是 4 的倍数,则最右侧用 0 补充。例如,(11011011101101)2(0001 1011 01110110 1000) 2(1B768) 16。(2)十六进制转换成二进制具体的转换方法是:将每个十六进制数用 4 位二进制数来书写,转化后最 左侧或者最右侧的
12、0 在书写的时候可以省去。例如:(7ACDE) 16(111 1010 11001101 111)2例 1:把(516) 10 转换成二进制数。解:51652-4(101) 2(00001) 2(00101) 2小数点向左移 4 位等于乘以 2-4。例 2:把(19125) 10 转换成二进制数、十六进制数。解:首先把整数部分(19) 10 转换成二进制数:(19) 1016 十 2 十 124 十 21 十 20(10011) 2再把小数部分(0125) 10 转换成二进制数:01252025 0025205 005 21 1所以,(0125) 10(0001) 2。把整数与小数部分合起来结果为(19125) 10(10011001) 2(132) 16