为什么会有不同的进制?
计算机采用二进制主要是为了方便硬件的实现,电流的通、断,或电压的高、低正好能够表示二进制的0和1两个数码。二进制好处分述如下:
一、可行性:若使用十进制数,则需要这样的电子器件,它必须有能表示0—9数码的10个物理状态,这在技术上是相当困难的(目前为止没有完全解决),而使用二进制数,只需0,1两个状态,技术上轻而易举,如开关的通与断,晶体管中导通与截止等,磁介质的带磁与不带磁。
二、可靠性:二进制只有两种状态,数字传输处理不易出错。
三、简易性:二进制运算法则比较简单,数值、图形、文字等各种形式的信息,需要计算机加工处理时,首先必须按一定的法则转换成二进制数.
用二进制数表示一个数值时,位数比较长,不便书写和记忆,所以人们常用八进制数或十六进制数和十进制数来表示二进制数.
二进制
范围:0、1
加法性质:逢二进一
减法性质:借一当二
八进制
范围:0、1、2、3、4、5、6、7
加法性质:逢八进一
减法性质:借一当八
十进制
范围:0、1、2、3、4、5、6、7、8、9
加法性质:逢十进一
减法性质:借一当十
十六进制
范围:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
加法性质:逢十六进一
减法性质:借一当十六
进制之间怎么相互转换?
首先我们来看一个除法公式,从这个除法我们可以得出余数的求法。
余数 = 被除数 - (商 * 除数)
3 = 23 - (4 * 5)
十进制转低进制采用辗转相除法(特殊:16进制转10进制采用的是权相加法)
低进制转高进制采用权相加法
八进制数和十六进制数采用8421码翻译成二进制数(适用于15以内的数,如果超过15就需要拆分成15以内的数之和再进行二进制运算)
十进制转换成2进制
100(10)转换成二进制:100 / 2 = 50....余0、50 / 2 = 25....余0、25 / 2 = 12....余1、12 / 2 = 6....余0、6 / 2 = 3....余0、3 / 2 = 1....余1、1 / 2 = 0....余1。
十进制转换成二进制:采用的是辗转相除法,十进制数除以2其得到的商继续除以2直到商为0为止,然后再将得到的余数倒叙排列就是二进制对应的十进制数。比如十进制数100转换成二进制数为1100100。
那么逢二进一又是什么意思?又怎么具体使用呢?
比如十进制数9用二进制数表示:二进制数运算规则是逢二进一,二进制数表示只有数字0和1。
将十进制数9拆分为(1+1) +(1+1) +(1+1) +(1+1) +1 = 10 + 10 + 10 + 10 + 1
其中的(1+1)= 10 就是采用二进制的逢二进一运算规则。
后面的10 + 10 + 10 + 10 + 1 = 10 + 10 + 10 + 10 + 01涉及到二进制的加法,二进制的加法规则很简单,低位和低位相加,高位和高位相加,配合二进制的逢二进一运算规则可以得出最后的答案:(10 + 10) + (10 + 10) + 01 = 100 + 100 + 01 = 1000 + 01 = 1001。
确实上面的十进制数和十六进制数可以采用8421规则得出相应的二进制数,8421码对应着4位二进制数,8对应千位、4对应百位、2对应十位、1对应个位,比如上面的十进制数9按照8421码规则可以很轻松写出其二进制数1001,再比如十六进制数F变化成二进制就是四个1,F(16) = 1111(2)。
高进制转低进制请参照十进制转二进制的方法。
二进制转十进制
口诀:整数二进制用数值乘以2的幂次依次相加,小数二进制用数值乘以2的负幂次然后依次相加。
1、整数二进制转换为十进制:首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。
若二进制补足位数后首位为1时,如下图所示,就需要先取反再换算:
2、小数的二进制转换为十进制:将二进制中的四位小数分别于下边(如下图所示)对应的值相乘后相加得到的值即为换算后的十进制。
减法部分:二进制100减二进制101。二进制减法性质:借一当二
首先判断被减数100(2)是否大于减数101(2),如果大于就正常使用减法性质,如果不是就将减数减去被减速并括弧括起来在括弧前面加上负号。
100(2) 小于 101(2),所以100(2) - 101(2) = - (101(2) - 100(2))= - 001
其它也类似二进制减法的操作方法。
高进制转低进制采用辗转相除法(特殊:16进制转10进制采用的是权相加法)
低进制转高进制采用权相加法(特殊:16进制转10进制采用的也是权相加法)
验证:高进制转低进制采用辗转相除法(特殊:16进制转10进制采用的是权相加法)
十进制转八进制
比如:100(10)转为八进制表示
十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。
具体做法是:
将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数; 保留余数,用商继续除以 N,又得到一个新的商和余数; 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数; …… 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。
把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。
100 / 8 = 12...4、12 / 8 = 1...4、1 / 8 = 0...1 ---------100(10) = 144(8)
十进制转二进制
比如:100(10)转为二进制数表示
100(10)转换成二进制:100 / 2 = 50....余0、50 / 2 = 25....余0、25 / 2 = 12....余1、12 / 2 = 6....余0、6 / 2 = 3....余0、3 / 2 = 1....余1、1 / 2 = 0....余1。
100(10) = 1100100(2)
八进制转、十六进制转二进制(采用8421)
比如:34(8)转二进制表示
三位表示一个八进制数:3(8)= 011(2)、4(8)= 100(2)得34(8) = 011 100 (2) = 11100(2)
比如:5E(16)转二进制表示
四位表示一个十六进制数:5(16)= 0101(2)、E(16)= 1110(2)得5E(16)= 0101 1110(2)= 1011110(2)
二进制、八进制、十六进制转十进制都是采用权相加法
比如:5E转十进制数
采用权相加法
5 * 16**1 + E * 16**0 = 80 + 14 = 94(10)