概述
一、计算机常用的数制
1.十进制(逢十进一)
十进制是日常生活中最常使用的进制数,只有0~9十个数字符号。
如 =
2.二进制(逢二进一)
二进制是数字电路中应用最广泛的进制数,无论是其他任何语言都要转换成二进制电脑或者其他机器才能识别,因此二进制又称为“机器语言”,它只有0、1两个数字符号。编程时用“0b”或“0B”表示二进制。
如 =
3.十六进制(逢十六进一)
十六进制常用于程序编写,有0~9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)共16个符号,字母不区分大小写。编程时用“0x”或“0X”表示十六进制。
如 =
4.八进制(逢八进一)
八进制用得比较少,只出现在某些特殊场合,只有0~7八个数字符号。编程时用“0o”或“0O”表示八进制。
如 =
几种进制的对比:
十进制 | 二进制 | 八进制 | 十六进制 |
00 | 0000 | 00 | 0 |
01 | 0001 | 01 | 1 |
02 | 0010 | 02 | 2 |
03 | 0011 | 03 | 3 |
04 | 0100 | 04 | 4 |
05 | 0101 | 05 | 5 |
06 | 0110 | 06 | 6 |
07 | 0111 | 07 | 7 |
08 | 1000 | 10 | 8 |
09 | 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 |
5.不同进制之间的转换
(1)二-十六转换(“4位4位法则”)
①二进制->十六进制
技巧:以小数点为分界线,分别往左往右 每4位 将二进制转换成十六进制。
如 =
②十六进制->二进制
技巧:将每一位十六进制数转换成4位二进制数。(特别重要,如十六进制数 2 转换成二进制数需要写成 0010,不可写成10)
如 =
(2)二-十转换
①二进制->十进制
解释一下权重这个概念:
例如 十进制中数值1314.521,千位的权重是(1000)、百位的权重是(100)、十位的权重是(10)、个位的权重是(1),十分位(也就是小数点后一位)的权重是(0.1),百分位的权重是(0.01),千分位的权重是(0.01),所以 = 。
再例如 二进制数值 101.101,(注:以小数点为分界线,从左开始数为整数的第1位、第2位······,从右边开始数为小数的第1位、第2位······)整数第1位权重是(1),整数第2位权重是(2),整数第3位权重是(4),小数第1位权重是(0.5),小数点第2位权重是(0.25),小数点第3位权重是(0.125),所以 = = 1 * 4 + 0 * 2 + 1 * 1 + 1 * 0.5 + 0 * 0.25 + 1 * 0.125 = 5.625 。
这就一不小心把二进制转换成十进制啦!
②十进制->二进制(整数部分除2取余,从下往上读余数,小数部分乘2取整,从上往下读整数)
如:
整数部分:21
21 ➗ 2 = 10·······1
10 ➗ 2 = 5 ·······0
5 ➗ 2 = 2 ·······1
2 ➗ 2 = 1 ·······0
1 ➗ 2 = 0 ·······1
0 ➗ 2 = 0 ·······0
当商和余数都为0时,从下往上读余数,整数部分结果:010101
小数部分:0.342
0.342 * 2 = 0.684 整数为 0
0.684 * 2 = 1.368 整数为 1
0.368 * 2 = 0.736 整数为 0(注意:减去整数部分后的小数部分继续乘以2)
0.736 * 2 = 1.472 整数为 1
0.472 * 2 = 0.944 整数为 0
0.944 * 2 = 1.888 整数为 1
显然,结果是无穷无尽的,在这里我们就保留6位,从上往下读整数,010101
最终答案: 010101.010101
(3)二-八转换(“3位3位法则”)
①二进制->八进制
技巧:以小数点为分界线,分别往左往右 每3位 将二进制转换成十六进制。
如 =
②八进制->二进制
技巧:将每一位八进制数转换成3位二进制数。(特别重要,如八进制数 2 转换成二进制数需要写成 010,不可写成10)
如 =
6.二进制算数运算
(1)原码
二进制的正负号是在二进制数前加一位符号位,符号位为0表示二进制数为正数,符号位为1表示二进制数为负数。这种形式的数称为原码。
如:(-5) 1 101 (+7) 0 111
(2)反码
若二进制数为负数,则将其原码中除符号位的每一位进行取反,即1变成0,0变成1,这个数称为原码的反码。若二进制数为正数,则这个数的反码和原码相同。
如:(-5的反码)1 010 (+7的反码)0 111
(3)补码(计算机运算都是补码的运算)
在计算机做减法运算时,如果两个数是原码,则需要比较两个数的绝对值大小,才能确定最后结果的正负号,这个操作过程需要比较电路和减法电路;若两个数是补码形式,则在省略进位的前提下,两个数相减,相当于两个数的补码进行相加,可以看出,这个操作过程就省去了比较电路,可以使电路结构大为简化。
若二进制数为负数,则这个数的补码为其反码+1(记住就行);若二进制数为正数,则这个数的补码和原码相同。
需要注意下面两点:
①两同符号数相加时,它们的绝对值之和不可超过有效数字所能表示的最大值,否则计算出错。
②两个加数的符号位和最高有效数字位的进位相加 得到结果(再舍弃进位)就是和的符号位。
来4个计算题帮助理解上面两点,用二进制反码计算 15+5、15-5、-15+5、-15-5
首先两个数的绝对值之和为20,4位二进制数能表示的最大值为15(1111),5位二进制数能表示的最大值为31(11111),所以20我们需要用5位二进制数才能表示,再加上一个符号位,共6位。
+15的补码:0 01111(与其原码相同)
+5的补码:0 00101(与其原码相同)
-15的补码:1 10001(其反码+1)
-5的补码:1 11011(其反码+1)
如上图,+15 - 5 = +10,+10的符号为 加数+15的符号位 加上 加数-5的符号位 再加上 最高有效数字位的进位 得10(再舍弃进位1,最后符号位为 0),其他 和数 的符号位同理。
多做题!多做题!多做题!重要的事情说三遍!!!
下面的内容大家了解一下就ok!不用记,写代码的是可以百度的。
二、计算机常用的编码
1.十进制代码
8421码 (BCD码) | 余3码 | 2421码 | 5211码 | 余3循环码 | |
0 | 0 0 0 0 | 0 0 1 1 | 0 0 0 0 | 0 0 0 0 | 0 0 1 0 |
1 | 0 0 0 1 | 0 1 0 0 | 0 0 0 1 | 0 0 0 1 | 0 1 1 0 |
2 | 0 0 1 0 | 0 1 0 1 | 0 0 1 0 | 0 1 0 0 | 0 1 1 1 |
3 | 0 0 1 1 | 0 1 1 0 | 0 0 1 1 | 0 1 0 1 | 0 1 0 1 |
4 | 0 1 0 0 | 0 1 1 1 | 0 1 0 0 | 0 1 1 1 | 0 1 0 0 |
5 | 0 1 0 1 | 1 0 0 0 | 1 0 1 1 | 1 0 0 0 | 1 1 0 0 |
6 | 0 1 1 0 | 1 0 0 1 | 1 1 0 0 | 1 0 0 1 | 1 1 0 1 |
7 | 0 1 1 1 | 1 0 1 0 | 1 1 0 1 | 1 1 0 0 | 1 1 1 1 |
8 | 1 0 0 0 | 1 0 1 1 | 1 1 1 0 | 1 1 0 1 | 1 1 1 0 |
9 | 1 0 0 1 | 1 1 0 0 | 1 1 1 1 | 1 1 1 1 | 1 0 1 0 |
权 | 8 4 2 1 | 2 4 2 1 | 5 2 1 1 |
①8421码又称BCD码,是十进制代码中最常见的一种,由于代码中从左到右每一位1分别表示8、4、2、1,所以称为8421码。2421码、5211码的编码方式和8421码相同,只是用途不一样。后面章节会继续学习。
②余3码,若把每一个余3码看作4位二进制数,则它的数值要比它所表示的十进制码多3,所以称余3码。如果两个余3码相加,所得的和比十进制数的和多6,所以,在进行十进制加法运算时,若两数之和为10,正好等于二进制数的16,便自动产生了进位信号。
③余3循环码的主要特点是相邻两个代码之间仅有一位的状态不同,它属于下面说的格雷码。
2.格雷码(可靠性代码)
编码顺序 | 二进制代码 | 格雷码 |
0 | 0000 | 0 0 0 0 |
1 | 0001 | 0 0 0 1 |
2 | 0010 | 0 0 1 1 |
3 | 0011 | 0 0 1 0 |
4 | 0100 | 0 1 1 0 |
5 | 0101 | 0 1 1 1 |
6 | 0110 | 0 1 0 1 |
7 | 0111 | 0 1 0 0 |
8 | 1000 | 1 1 0 0 |
9 | 1001 | 1 1 0 1 |
10 | 1010 | 1 1 1 1 |
11 | 1011 | 1 1 1 0 |
12 | 1100 | 1 0 1 0 |
13 | 1101 | 1 0 1 1 |
14 | 1110 | 1 0 0 1 |
15 | 1111 | 1 0 0 0 |
格雷码又称循环码,其每一位都按一定的规律变化,从0000开始,最右边一位的状态按“0110”顺序变化,右边第二位按“00111100”顺序变化,第三位按“0000111111110000”规律变化,最左边一位按“0000000011111111”变化,更多位的格雷码遵此规律。格雷码的应用在以后章节会学习到。表格中蓝色背景的代码就是上面所说的余3循环码(手机用户需要左划一下表格)。
3.ASCII码(美国信息交换标准代码)
天黑了,博主要去开摩的挣钱了,ASCII码的话,大家百度深入了解一下,编程时特别重要。
文章中如有错误,期望大家可以留言指出,咱们共同学习、共同进步,若有不懂的地方,欢迎询问,我会在等红灯的时候回复您。
最后
以上就是轻松仙人掌为你收集整理的数字电子技术学习(一)——数制和码制的全部内容,希望文章能够帮你解决数字电子技术学习(一)——数制和码制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复