一、二进制数的算术运算
算术运算:加减乘除
微机中通常只有做加法的硬件电路。其他三种算术运算均是通过加法电路完成的
1 无符号二进制数的算术运算
(1)二进制加法
无符号二进制加法规则:0+0=0,0+1=1,
1+1=10(注:二进制数逢二进一)
(2)二进制减法
无符号二进制减法规则:0-0=0,,1-1=0,1-0=1,
0-1=11(注:按照十进制数应为-1,二进制中用最高位是0表示正数,最高位是1表示负数,故此处为1
(3)二进制乘法(把被乘数或0左移一位)
可以类比十进制数乘法
(4)二进制除法(把除数右移一位)
可以类比十进制数除法
2 带符号二进制数的算术运算
(1)二进制数的最高位表示符号位,且用0表示正数,用1表示负数。其余部分用原码的形式表示数值位
(2)原码:二进制数的真值
注:真值是现实中用于计算的数据,在计算机中不存在;
正数或负数的真值为其绝对值对应的二进制数前面加上正号或负号;
例如+1表示为+00000001,-1表示为-00000001。
(3)二进制数的补码表示
补码或反码高位表示符号位,且用0表示正数,用1表示负数
二进制数为正数时,补码和反码与原码相同
二进制数为负数时,将原码的数值逐位求反,然后在最低位加1得到补码
注:逐位求反:除符号位逐一求反;最低位加1
(4)二进制数补码减法运算
减法运算的原理:减去一个正数相当于加上一个负数。A-B=A+(-B),对(-B)求补码,然后进行加法运算。
注:二进制数减法需要求补码
因为二进制数的加法和减法都用补码时计算更方便
3 溢出
溢出的判别
①如何判断是否产生溢出?
同符号位相加惠溢出(绝对值超过有效位数所表示的最大值);
不同符号位相加不会溢出
二、二进制代码
1 二-十进制编码(BCD码)
(1)用若干位码元按一定规律排列起来表示给定信息的过程称为编码
(2)码元:在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元
(3)用4位二进制数码表示一位十进制数0~9十个状态时,这些代码称为二-十进制代码,简称BCD代码。
(4)BCD码需要4位二进制码元,4位二进制码2的4次方等于16种组合,但只用其中10种组合表示十进制数0~9
(5)常用的BCD代码
①8421码
有权编码,从左向右每一位的1分别为8,4,2,1,即这一位的权
②5421码
前提可以用到高位的时候尽量使用权比较高的那一位进行编码;有权编码
③2421码
有权编码;自补代码(以中线为对称轴,存在镜像互补对称的特性)
④余三码
不是有权编码,是自补代码;数值比8421码表示的十进制数多3
2 格雷码(减小代码发生错误的工具)
(1)二进制转换为格雷码的原理:格雷码的最高位等于二进制码的最高位,格雷码的次高位等于二进制码的最高位与次高位的异或,依次类推得到以下公式:若二进制码的最高位为b[n-1],最低位为b[0],格雷码码的最高位为g[n-1],最低位为g[0],则g[n-1]=b[n-1],g[n-2]=b[n-1]^b[n-2];g[n-3]=b[n-2]^b[n-3]……g[0]=b[1]^b[0];
综上所述,将二进制码整体右移一位,然后再与二进制码本身进行异或,得到该二进制码对应的格雷码。对应公式:g[n-1:0]=(b[n-1:0]>>1)^b[n-1:0]。
(2)格雷码转换为二进制码:同理对于格雷码转换二进制可以得到以下规律:二进制码的最高位同样等于格雷码的最高位,二进制码的次高位等于格雷码的次高位异或二进制码的最高位,以此类推得到以下公式,即b[n-1] = g[n-1],b[n-2] = g[n-2]^b[n-1]……b[0]=g[0]^b[1].
(3)由于人为或非人为的原因,代码在计算机或其他数字系统中形成、传送和运算过程中都有可能出现错误。于是人们在提高计算机本身的可靠性的同时,也创造了一些可靠性编码。它们令代码本身具有一种特征或能力,使得代码在形成中不容易出错,或代码在出错时容易被发现,甚至能查出出错的位置并予以纠正。格雷码就是一种可靠性编码。在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码。在数字系统中,常要求代码按一定顺序变化。例如,按自然数递增技术,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变化不可能绝对同时发生,则计数中可能出现短暂的其他代码(1100、1111等)。在特定情况下可能导致电路状态错误或输入错误。使用格雷码可以避免这种错误。
3 ASCII码
(1)组成:
①ASCII打印字符:数字32–126分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。
②ASCII非打印控制字符:ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。
③扩展ASCII打印字符:扩展的ASCII字符满足了对更多字符的需求。扩展的ASCII包含ASCII中已有的128个字符,又增加了128个字符,总共是256个。