进制转换及二进制运算规则
什么是进制?
进制就是进位计数制,是人为定义的带进位的计数方法。我们的时间就是六十进制(满60秒进一分钟,满60分钟进1小时);对于任何一种进制—X进制,就表示每一位上的数运算时都是逢X进一位。
基本概念:
数码:一组用来表示某种数制的符号;
基数:数制所使用的数码个数,简称“基”;
位权:数码在不同位置上的权值(与位置有关,与数的大小无关),简称“权”。
计算机中主要有十进制、二进制、八进制、十六进制
进制 | 英语 | 数码 | 基数 | 标识 | 计数规则 |
---|---|---|---|---|---|
十进制 | Decimal | 10~9 | 10 | D | 逢(满)十进一 |
二进制 | Binary | 0、1 | 2 | B | 逢(满)二进一 |
八机制 | Octal | 0~7 | 8 | O | 逢(满)八进一 |
十六进制 | Hexadecimal | 0~9、A-F | 16 | H | 逢(满)十六进一 |
常用的各种进制之间的对应关系
十进制(D) | 二进制(B) | 八进制(O) | 十六进制(H) |
---|---|---|---|
0 | 0000 | 0 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 | 2 |
3 | 0011 | 3 | 3 |
4 | 0100 | 4 | 4 |
5 | 0101 | 5 | 5 |
6 | 0110 | 6 | 6 |
7 | 0111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
17 | 10001 | 21 | 11 |
需牢固记住以下2的幂次对应的值
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 210 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
上述表格请大家一定要牢记,在计算机基础学习过程中会经常使用。
进制间的转换
一、十进制转换为二进制、八进制、十六进制
(一)十进制转二进制
(1)转换原理:整数部分除以2,反向取余数,直到商为0终止;小数部分乘2取整,顺序排列。
(2)具体做法:将某个十进制数整数部分除2得到的整数部分保留,作为第二次除2时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制整数部分对应的二进制数。
用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
(3)特别注意:任何十进制的整数都可以用二进制数来准确表示,但是任何十进制的小数不一定可以用二进制数来准确表示。
(二)十进制转八进制
(1)转换原理:整数部分除以8,反向取余数,直到商为0终止;小数部分乘8取整,顺序排列。
(2)具体做法:将某个十进制整数部分除8得到的整数部分保留,作为第二次除8时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制整数部分对应的八进制数。
用8乘十进制小数,可以得到积,将积的整数部分取出,再用8乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为八进制小数的高位有效位,后取的整数作为低位有效位。
(三)十进制转十六进制
(1)转换原理:整数部分除以16,反向取余数,直到商为0终止。小数部分乘8取整,顺序排列。
(2)具体做法:将某个十进制数整数部分除16得到的整数部分保留,作为第二次除16时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制对应的十六进制数。
(四)十进制转R进制
根据上述三种十进制转换可以总结出十进制进制转换为其他进制的通用方法。
(1)转换原理:整数部分除以R,反向取余数,直到商为0终止。小数部分乘R取整,顺序排列
(2)具体做法:将某个十进制数整数部分除R得到的整数部分保留,作为第二次除R时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制整数部分对应的R进制数。
用R乘十进制小数,可以得到积,将积的整数部分取出,再用R乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
二、二进制转换为十进制、八进制、十六进制
(一)二进制转十进制
转换原理:把二进制数按权展开、相加即得十进制数;或者使用前面让记住的表格进行:
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 210 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
(二)二进制转八进制
(1)转换原理:把3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
(2)具体做法:
整数部分:从右往左每三位一组,缺位处用0填补,然后每组按十进制方法进行转化;
小数部分:从左到右每三位一组,缺位处用0填补,然后每组按十进制方法进行转化。
(三)二进制转十六进制
(1)转换原理:把4位二进制数按权展开相加得到1位十六进制数。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
(2)具体做法:
整数部分:从右往左每四位一组,缺位处用0填补,然后每组按十进制方法进行转化;
小数部分:从左到右每四位一组,缺位处用0填补,然后每组按十进制方法进行转化。
三、八进制、十六进制转换为二进制
将八进制、十六进制转换成二进制实际上就是二进制转换为八进制、十六进制的逆向求解的过程。
(一)八进制转二进制
(1)转换原理:把1位八进制数展开为3位二进制数。(注意事项,每一位八进制位都转换成3位二进制数,一位也不能少,不足时补0)。
(2)具体做法:
整数部分:从右往左每一位八进制数看做十进制数,转换为3位二进制数,缺位处用0补充;
小数部分:从左往右每一位八进制数看做十进制数,转换为3位二进制数,缺位处用0补充。
(二)十六进制转二进制
(1)转换原理:把1位十六进制数展开为4位二进制数。(注意事项,每一位十六进制位都转换成4位二进制数,一位也不能少,不足时补0)。
(2)具体做法:
整数部分:从右往左每一位十六进制数看做十进制数,转换为4位二进制数,缺位处用0补充;
小数部分:从左往右每一位十六进制数看做十进制数,转换为4位二进制数,缺位处用0补充。
二进制的运算规则
一、算数运算规则(加减乘除)
(一)加法运算规则
0+0=0、0+1=1、1+0=1、1+1=10(产生进位);
(二)减法运算规则
0-0=0、0-1=1(产生错位,需前借1)、1-0=1、1-1=0
(三)乘法运算规则
0x0=0、0x1=0、1x0=0、1x1=1
(四)除法运算规则
二进制的除法运算和十进制的类似,不存在进位、借位。
二、逻辑运算规则(与或非异或)
注意:
- 二机制的逻辑运算的两个数的位数一定是相等的,在做题时时注意核对两个数的位数;
- 逻辑运算是两个二进制数对应上下位的运算,对于一个二机制数的前后位之间没有进位和错位。
(一)与运算规则
(1)说明:“与”运算(逻辑乘),用符号 “&” 或 AND表示。
(2)运算:一位为0,则结果为0;若都为1,结果才为1。
0&0=0、0&1=0、1&0= 0、1&1=1
(二)或运算规则
(1)说明:“或”运算(逻辑加),用符号 “|” 或 OR 表示。
(2)运算:一位为 1,结果为 1;若都为 0,结果为 0。
0|0=0、0|1=1、1|0= 1、1|1=1
(三)非运算规则
(1)说明:“非”运算(逻辑否),用符号 “~” 或 NOT表示。
(2)运算:非 1 为 0 ,非 0 为 1。
~0=1、 ~1=0
(四)异或运算规则
(1)说明:“异或”运算通常用符号 “XOR”表示。
(2)运算:不同为 1;相同为 0 。
0 XOR 0=0、0 XOR 1=1、1 XOR 0= 1、1 XOR 1=0
计算机中使用二进制的优点
(1)易用电器元件实现;
(2)方便计算;
(3)算术运算简便;
(4)可用逻辑代数作为分析设计的工具;
(5)可靠性高。