计算机里,为了标志不同进制的数据,一般在数据末尾使用特殊标记来标明。二进制使用 字母D标记,一般省略不写,如70D、223;二进制使用字段B标记,如1011B、110B;十六进制用字段H标记,如18H、A2H;八进制使用O标记,如70O、235O。
一、十进制
在日常生活中,我们使用最多、最熟悉的就是十进制。它的数值由十个不同的数字符号 0、1、2、3、4、5、6、7、8、9 来表示。这些数字符号叫 数码,表示十种不同的状态。数码位于不同的位置时,代表的意义(数值)是不同的。
例如:对于字符6,当放到十位上,表示60;放置到千位上时,表示6000。
再如:对于32.15这个数,小数点左边的2在个位,数值即为它自身;左边挨着的3在十位,表示3x10;而小数点右边的1在十分位,表示 1x1/10=0.1;它右边的5在百分位,表示5x1/100=0.05。因此也可以写为 32.15=3x+2x
+1x
+5x
进位制:进位计数制,就是说,它是按进位的方式计数的。
基数:进位制中,可能用到的数码个数。如,基数为十,则每位计满十向高位进一,即“逢十进一”,这种就是我们常说的十进制。
除也十进制外,还有其它非十进制的数。比如时间,60秒为一分钟,60分钟为一小时,所以是六十进制;还有一打啤酒,就是十二,因此是十二进制。
二、二进制
基于上面的二进制,可以知道二进制的基数为2,即“逢二进一 ”,使用“0”和“1”表示。
特点:由于二进制每个数位上只取两个不同的数码“0”和“1”,因此能够比较容易地在电子计算机中表示。比如,低电平(没有电)表示0,以高电平(有电压)表示1,比较容易实现,误码率也很低。同时,每位只有“0”和“1”两个状态,能够与逻辑运算结果的两个状态“真”和“假”对应,可以利用二进制来实现逻辑运算。
正是由于二进制在计算机上的可行性、简易性、逻辑性和可靠性等特点,使得科学家选用二进制作为计算机内部的标准数值。尽管计算机可以输入输出十进制等数值,但计算机内部存储、处理和传输的都是二进制数据。
三、十进制转二进制
要把一个十进制转换为二进制,首先做是按小数点分隔为两部分。
对于整数部分,就是一直除以2,直到商为零,把余数倒序记录,这个数就是十进制数整数部分的二进制表达形式。
对于小数部分,则是对小数乘以2,顺序记下积的整数部分,直到积的小数部分为零为止,这个数就是十进制数小数部分的二进制表达形式。
把整数部分的二进制数与小数部分的二进制数组合起来,就是最终的二进制结果。
注意:并不是所有的有限十进制数都能转换为有限的二进制数,对于这种情况,根据精度保留一定位数即可。
二进制转十进制
0.11B = 1x+1x
=0.5+0.25 = 0.75
0.1011B = 1x+0x
+1x
+1x
=0.5+0+0.125+0.0625 = 0.6875
四、十六进制、八进制
同理,十六进制的基数为16,使用16个数码,逢16进1。16个数码为 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
八进制的基数为8,使用8个数码,逢8进1。8个数码为 0、1、2、3、4、5、6、7。
十六进制与八进制转 十进制,可以参考 二进制转十进制的方法,如下
16进制转10进制:
8进制转10进制:
而十六进制与八进制 与二进制 互转,有更简便的方式。
由于16进制的基数是16,正好是2的4次幂;8进制的基数是8,正好是2的3次幂。因此,一位16进制数对应4位二进制数,一位8进制数对应3位二进制数。
因此,对于16进制,把每一位解析为4位二进制数即可;对于8进制数,每一位解析为3位二进制数即可。示例如下
010(2) 100(4) 101(5)
111(7) 000(0) 000(0) 010(2)
1110(E) 1010(A) 0010(2) 0000(0) 0111(7)
对于有小数的二进制数,有可能需要补零
注意,小数点后的 11001,转为8进制时,前三位为 110B=6O,后面仅两位,需要补0凑位,应该为010B=2;转为16进制时,前4位为1100B=C,后面仅一位,需要补3个0凑位(一个16进制数等于4个二进制数),应该1000B=8。
五、进制速查表