|
进制转换----吐血大作[原创] 我对进制的一点理解 -------献给计算机初学者 版权归夏雨天MASM所有,转载请保持完整,谢谢. 通常我们所说的数字,一般都是十进制,10分就1毛,10毛就1块......这些数字只是由十个数组成,那就是:0.1.2.3.4.5.6.7.8.9[我们一般称之为基数] 都是这些数,但它们处于不同位置所代表的重量就不一样了哦,如111,都是1但就是不一样,这就涉及到了位权的概念了,可用以下实例来说明。一个十进制数结4 5 5 3 .8 7可表示为:
4553.87=4×10(3)+5×10(2)+5×10(1)+3×10(0)+8×10(-1)×7×10(-2) [声明:(N)表示的是N次方]
在这个数中,有些相同的数字由于处在不同的位置,它们代表的数值的大小也不同,各位数字所代表的数值的大小是由位权来决定的。位权是一个乘方值,乘方的底数为进位计数制的基数(本例中为1 0 ),而指数由各位数字在数中的位置来决定。以上的十进制数中,从左至右各位数字的位权分别为:10(3)、10(2).10(1)、10(0)、10(-1)、10(-2)。一般而言,在进位制中,把一个数中各位数字为1时代表的数值大小称为位权。如456它们的位权就是当各位为1时的数值大小,456中的4的位权就是10(2),5的位权就是10(1),6的位权就是10(0). 除了位权对于进制记数的另一个重要概念就是基数,基数很好理解,就是进位计数制中所使用的不同基本符号的个数称为该计数制的基数,比如十进制就是1.2.3.4.5.6.7.8.9.0这十个数,相对而言二进制就两个基数:0和1,八进制就是:0.1.2.3.4.5.6.7.8,十六进制就是:0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F
由上面两个概念可以得出以下公式:[以下将详细说名]
N进制的基数就能表示为:0.1.2......N-2.N-1 N进制的权一般可以表示:N(X)[X是X乘方,X就是某数在它的数列中所处位置] N进制展开成十进制公试:如abcdefg.hijk=a*N(6)+b*N(5)+c*N(4)+d*(3)+e*(2)+f*N(1)+g*N(0)+h*N(-1)+i*N(-2)+j*N(-3)+k*N(-4)
十进制:有10个基数:0 ~~ 9 ,逢十进一 二进制:有2 个基数:0 ~~ 1 ,逢二进一 八进制:有8个基数:0 ~~ 7 ,逢八进一 十六进制:有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一
由于大家从小娃仔开始就学习十进制,生活中用途更是广泛,一种单一的数字思维模式使我们很多人以为就只有这么一种进制数.在以下给大家说说计算机中用得最多的进制数,让大家开阔思维,不要停留于一成不变的思维模式中.
计算机中用得最多也是CPU唯一能认出的数制,那就是二进制.计算机是处理信息的机器,信息处理的前提是信息的表示。计算机内信息的表示形式是二进制数字编码。也就是说,各种类型的信息(数值、文字、声音、图像)必须转换成数字量即二进制数字编码的形式,才能在计算机中进行处理。那怕你移动一下鼠标,按一下键盘,你的每一个动作最后到了CPU那也就只剩0和1了,有时觉得设计计算机的人也太厉害了,就两个数字就能弄出这么完美的东西来,这就是智慧的结晶,其实说到底了CPU也就几百条指令而已,在软件和系统的层层迭加下让我们根本就不了解计算机内部是什么样?其实没就是0和1两个状态而已啦.
为什么计算机会采用二进制呢?这是有原因的,也是计算机设计人员考虑到的一个重要因素.计算机内采用二进制的主要原因是:
1. 容易表示 二进制数只有“0”和“1”两个基本符号,易于用两种对立的物理状态表示。例如,可用电灯开关的“闭合”状态表示“1”,用“断开”状态表示“0”;晶体管的导通表示“1”, 截止表示“0”;电容器的充电和放电、电脉冲的有和无、脉冲极性的正与负、电位的高与低等一切有两种对立稳定状态的器件都可以表示二进制的“0”和“1”。而十进制数有1 0个基本符号( 0,1,2,..,9 ),要用1 0种状态才能表示,要用电子器件实现起来是很困难的。
2. 运算简单 二进制数的算术运算特别简单,加法和乘法仅各有3条运算规则( 0+0=0,0+1=1,1+1=1 0和0×0=0,0×1=0,1×1=1 ),运算时不易出错。[其实计算机处理算术运算时都是加法和移位,并没有乘除法,如11B左移一位就成了110B,11B是十进制的5,而110B是10,看看是不是等于乘二,左移乘,右移就除,哈哈,好玩吧]此外,二进制数的“1”和“0”正好可与逻辑值“真”和“假”相对应,这样就为计算机进行逻辑运算提供了方便。算术运算和逻辑运算是计算机的基本运算,采用二进制可以简单方便地进行这两类运算。
二.进制的转换 虽然二进制有不少优点,但毕竟我们日常生活中用的都是十进制,为了能通用,就有必要把它转换为十进制.至于为什么用八进制和十六进制呢?很简单,就是因为它是2的乘方,2(3)=8,2(4)=16,这样一来就便于二进制的计算和阅读. 对于其它进制转换为十进制比较简单,下面举例说明:在此说明一下,一般常用进制有简写,这样是为了不混淆,如十进制一般在末尾加个字母D[一般习惯都不加],二进制加个B,八进制Q,十六进制H. 例如:123D、1101B、123Q、AB9H
123D=1×100+2×10+3×1=123 0.11D=1*10(-1)+1*10(-2)
1011B=(1×8+0×4+1×2+1×1)D=11 0.11B=1*2(-1)+1*(-2)
123Q=(1×64+2×8+3×1)D=83 0.11Q=1*8(-1)+1*8(-2)
AB9H=(10×256+11×16+9×1)D=2745 0.11H=1*16(-1)+1*16(-2)
而十进制转换为其它进制就比较难办了哦,但方法是有的,而且不少方法,在此介绍一种比较常用的,便于大家掌握. 先讲十进制转换为二进制----- 只能举例了,文字说不清的,通常将一个十进制数的整数部分和小数部分分开处理。 1、整数的数制转换; ——采用“基数除法”,具体步骤如下: (1)将给定的十进制整数除以基数2,余数便是等值的二进制的最低位。 (2)将上一步的商再除以基数2,余数便是等值的二进制数的次低位。 (3)重复步骤2,直到最后所得的商等于0为止。各次除得的余数,便是二进制各位的数,最后一次的余数是最高位
看下面一: 如十进制数267转换图如下: 图一
此主题相关图片如下:
 (267)D=(100001011)B
2、纯小数的数制转换 ——采用“基数乘法”,其具体步骤如下: (1)将给定的十进制纯小数乘以基数2,其积的整数部分便是等值二进制纯小数的最高位。 (2)将上一步中乘积的小数部分再除以基数2,所得乘积的整数部分便是次高位。 (3)重复步骤2,直到乘积的小数部分为0,或者达到要求的精确度为止(舍入误差小于最低位对应的数值)。各次乘积的整数部分便是二进制纯小数的各位,最后一次乘积的整数部分是最低位. 例:将十进制数0.78转换为二进制数。舍入误差小于2-8≈4×10-3 看下图二: 图二
此主题相关图片如下:
 (0.78)D=(0.11000111)B 3、带小数的十进制数转换为二进制数: ——将其整数部分和小数分开计算,即整数部分用基数除法,小数部分用基数乘法,最后合起来。 例:(267.78)D=(100010011.11000111)B 以上方法可归纳为: 整数部分——除2取余; 小数部分——乘2取整。 另外要注意读数的顺序(即高低位的顺序)。十进制转换为其它进制方法一样,在此不多讲了,如不明白可以联系我.下面就十进制267转八进制说说就OK了,看图三 图三
此主题相关图片如下:
 (267)D=(413)Q 小数就比较麻烦了,当然也可以和上面而二进制一样用乘基数取整法,但太麻烦,所以我建议先转化为二进制再转化为八进制,如0.78D要转换成八进制就得先转换为二进制,再转换为八进制.这样就能以二进制为基础进行扩张转换,那就比较清晰了. 其实本人觉得不管什么进制,如不是很大的数,不管三七二十一先转为二进制再讲,二进制再转换就简单得多了. 如
二进制数转换为八进制和十六进制数 1、二进制转换为八进制: 整数部分,从低位开始,小数部分,从高位开始,每三位一组(不够三位的补0),转换为对应的八进制数。 例:(267.78)D=(100 010 011.110 001 11)2=(423.616)Q 267.78 100 010 011.110 001 11[0]-----补个零 4 2 3 . 6 1 6 2、二进制转换为十六进制: 整数部分,从低位开始,小数部分,从高位开始,每四位一组(不够四位的补0),转换为对应的十六进制数。 例:(267.78)D=(1 0001 0011.1100 0111)2=(113.C7)H
八进制和十六进制转换为二进制: 1、八进制转换为二进制: 将八进制数的每一位分别转换为对应的三位二进制数。 例:(643)Q=(110 100 011)
例: (3 7 . 5 6)Q
011 111 . 101 110
(37.56)Q=(11111.10111)B
2、十六进制转换为二进制: 将十六进制数的每一位分别转换为对应的四位二进制数。 例:(3E9D)H=(11 1110 1001 1101)B 例:( 2 A B E)H
0010 1010 1011 1110
(2ABE)Q=(10101010111110)B
把二进制分组是不是简单多了,三位四位的二进制计算量要少了很多,分组也是有规律的,如八进制三位一组,因为八是二的三次方,十六是二的四次方,就分四位为一组,依此类推.以下是各进制对照表: 图四
此主题相关图片如下:
 由于时间紧多,难免可能出错,望指正. bbs.laibin.net 2004年4月1日4:47 于河南理工大学老校区公寓楼533 夏雨天MASM
|